如何计算图像像素

时间:2012-06-02 23:33:34

标签: c++ image image-processing opencv

我想知道如何应用这个“水平位置,计算图像左边缘的像素,可以用方框内所有”开“像素绘制的最小矩形框的中心。” 请注意,框==图像

使用opencv代码

任何帮助

2 个答案:

答案 0 :(得分:0)

我不确定我是否正确理解你,但这是我建议计算图像中的像素。

我在下面使用的Mat图像是灰度图像,如果要计算3通道RGB图像上的像素,则需要分割其通道并单独处理它们。

Mat image= imread( "C:\\1.jpg" );// load your image by giving the path here.
Mat grayscale_image;

cvtColor(image,grayscale_image,CV_RGB2GRAY);/* this converts "image" to 
"grayscale_image" which is a one channel image.*/

//Now you can play with its pixels

 int sumPixels=0;

                     for(int i=0; i<image.rows; i++)
                     {
                         for(int j=0;j<image.cols;j++)

                                sumPixels+=image.at<uchar>(i,j);                            

                     }

/* value of a pixel on a gray scale image(if it is a 8 bit image) varies between 
   0 and 255. "sumPixels" variable will contain the total pixel values of image.*/

答案 1 :(得分:0)

此代码尝试通过对每列的所有白色像素求和来找到每行的白色像素。

    int sum_of_x = 0;
    for(int i = 0; i < height; i++)
    {
        for(int j = 0; j < width; j++)
        { 
            if(data[i*step + j]==255)
                sum_of_x = sum_of_x + 1;
        }
        cout<<"Row No #"<<i<<", White Pixel at each ROW = "<<sum_of_x<<endl;
    }

干杯。