我试过这段代码。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
我真的坚持这一点..请您为这个问题提供任何解决方案