实现阴影 - 高光不变算法

时间:2018-04-07 08:34:35

标签: java algorithm opencv image-processing computer-vision

我是图像处理和openCV的新手,我正在尝试实现这一点 Algorithm

在本文Shadow And Highlight Invariant Colour Segmentation Algorithm For Traffic Signs

中找到

这是我的代码

public class rastara {      

 public static double normalizedH(double p) {     
    double scale=(p-0)/360;
    double val = 255*scale;
        return val;
}
public static double normalizedSV(double p) {
    double scale= p/1;
    double val = 255*scale;
        return val;
}

 public static void main (String[] args){

  System.loadLibrary( Core.NATIVE_LIBRARY_NAME );   



  Mat img = Highgui.imread("/Users/speedSign.jpg");

  Mat hsv = new Mat();
  Imgproc.cvtColor(img, hsv, Imgproc.COLOR_RGB2HSV);

  Mat hsvNew = hsv.clone();

  for(int i= 0; i<hsv.rows(); i++){
     for(int j= 0; j<hsv.cols(); j++){
      double[] hsvPixel = hsv.get(i,j);
       double H = hsvPixel[0];
       double S = hsvPixel[1];
       double V = hsvPixel[2];

      if((H>240 && H<=255) || (H>=0 && H<10)) {
           hsvPixel[0] = 255;
      }
      if(S<40) {
           hsvPixel[0] = 0;
      }
      if((V<30) || (V>230)) {
           hsvPixel[0] = 0;
      }

      hsvNew.put(i,j,hsvPixel);

   }
  }
 }
}

我所做的是使用RGB方法将HSV转换为openCV,我没有将像素标准化,因为我理解由{{1}转换的HSV的像素范围}与本文所要求的openCV相同但当我尝试使用我的代码时,它永远不会将像素0<H<255 0<S<255 0<V<255值更改为H1

算法的最后一部分我实际上并不知道如何实现这一点。

0 个答案:

没有答案