0

我在 Python 中有这段代码:

width = cv.GetSize(img_otsu)[0]
height = cv.GetSize(img_otsu)[1]
#print width,":",height
for y in range(height):
    for x in range(width):
        if(img_otsu[y,x]==(255.0)):
            CountPixelW+=1
        if(img_otsu[y,x]==(0.0)):
            CountPixelB+=1

我想将此 Python 代码转换为 C++

这是我到目前为止所拥有的:

cv::threshold(img_gray,img_otsu,0.0,255.0,cv::THRESH_BINARY+cv::THRESH_OTSU);


for(int y =0;y<=img_otsu.size().height;y++)
    for(int x=0;x<=img_otsu.size().width;x++)
    {
        //Check Pixel 0 or 255 This is Problem
    }

如何在 C++ 中检查像素是黑色还是白色?

4

1 回答 1

0

您可以将该at()函数用于Mat对象(请参阅OpenCV 文档)。

img_otsu.at<uchar>(y,x)将返回该位置矩阵中元素的值。请注意,您可能必须更改uchar为任何类型的矩阵img_otsu(例如,floatdouble)。获得值后,只需将其与 0 或 255 进行比较。

于 2013-02-03T02:05:12.900 回答