我试过这段代码。 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
我真的坚持这个..请你为这个问题提供任何解决方案
答案 0 :(得分:0)
在CV_NEXT_LINE_POINT(iterator);
循环内移动for
行。然后它应该工作。