相关疑难解决方法(0)

使用OpenCV计算黑色像素

我正在opencv 2.4.0和我一起工作C++

我正在尝试做一个练习,说我应该加载RGB图像,将其转换为灰度并保存新图像.下一步是将灰度图像制作成二进制图像并存储该图像.我有这么多工作.

我的问题在于计算二进制图像中的黑色像素数量.

到目前为止,我已经在网上搜索并查看了这本书.我发现的方法似乎最有用的是.

int TotalNumberOfPixels = width * height;
int ZeroPixels = TotalNumberOfPixels - cvCountNonZero(cv_image);
Run Code Online (Sandbox Code Playgroud)

但我不知道如何存储这些值并使用它们cvCountNonZero().当我将想要的图像传递给此函数时,我收到错误.

int main()
{
    Mat rgbImage, grayImage, resizedImage, bwImage, result;

    rgbImage = imread("C:/MeBGR.jpg");
    cvtColor(rgbImage, grayImage, CV_RGB2GRAY);

    resize(grayImage, resizedImage, Size(grayImage.cols/3,grayImage.rows/4),
           0, 0, INTER_LINEAR);

    imwrite("C:/Jakob/Gray_Image.jpg", resizedImage);
    bwImage = imread("C:/Jakob/Gray_Image.jpg");
    threshold(bwImage, bwImage, 120, 255, CV_THRESH_BINARY);
    imwrite("C:/Jakob/Binary_Image.jpg", bwImage);
    imshow("Original", rgbImage);
    imshow("Resized", resizedImage);
    imshow("Resized Binary", bwImage);

    waitKey(0);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

到目前为止,这段代码是非常基本的,但它实现了它现在应该做的事情.稍后会进行一些调整以清理它:)

c++ opencv image

6
推荐指数
1
解决办法
2万
查看次数

Python中的OpenCV无法扫描像素

我遇到了 OpenCv 的 python 包装器的问题。如果黑色像素的数量大于阈值,我有这个函数返回 1

def checkBlackPixels( img, threshold ):
    width     = img.width
    height    = img.height
    nchannels = img.nChannels
    step      = img.widthStep
    dimtot   = width * height
    data = img.imageData
    black = 0

    for i in range( 0, height ):
        for j in range( 0, width ):
            r = data[i*step + j*nchannels + 0]
            g = data[i*step + j*nchannels + 1]
            b = data[i*step + j*nchannels + 2]

     if r == 0 and g == 0 and b == …
Run Code Online (Sandbox Code Playgroud)

python opencv pixels

1
推荐指数
1
解决办法
7640
查看次数

标签 统计

opencv ×2

c++ ×1

image ×1

pixels ×1

python ×1