找到特定区域javacv中的白/黑像素

时间:2013-10-03 03:57:25

标签: javacv

我试过这段代码。 540是框的最左边的x值,3是框的最左边的y值,262 - 宽度,23-我将要计算白/黑像素的比率的区域的高度。我真正想做的是检测特定区域中白/黑像素比的数量。我已经计算了每个单元格的坐标(我要指定的区域)并尝试使用此代码。但计算中的错误。

请问我对此问题有所了解。

我真的被困在最后一年的项目中。

     CvSize cvSize = cvSize(img.width(), img.height());

     IplImage image = cvCreateImage(cvSize, IPL_DEPTH_8U, 1);
     IplImage image2 = cvCreateImage(cvSize, IPL_DEPTH_8U, 3);

     cvCvtColor(image2, image, CV_RGB2GRAY);
     cvSetImageROI(image2, cvRect(540,3,262,23));
     //IplImage image2 = cvCreateImage(cvSize, IPL_DEPTH_8U, 3);

    //
     //cvCvtColor(arg0, arg1, arg2)
    // cvCvtColor(image2, image, CV_RGB2GRAY);      
     //cvThreshold(image, image, 128, 255, CV_THRESH_BINARY);





    CvLineIterator iterator = new CvLineIterator();
    double sum = 0, green_sum = 0, red_sum = 0;
    CvPoint p2 =  new CvPoint(802,3);
    CvPoint p1 =  new CvPoint(540,26);

    int lineCount = cvInitLineIterator(image2, p1, p2, iterator, 8, 0 );



         for (int i = 0; i < lineCount; i++)  {
             sum += iterator.ptr().get() & 0xFF;
         }
          System.out.println("sum................"+sum);        
         CV_NEXT_LINE_POINT(iterator);

    }


}

它给出了结果................ 0.0

我真的坚持这个..请你为这个问题提供任何解决方案

1 个答案:

答案 0 :(得分:0)

CV_NEXT_LINE_POINT(iterator);循环内移动for行。然后它应该工作。