c++获取一张图像像素的方法

效率低的方式
for (int i = 0; i < img.rows; i++)
	for (int j = 0; j < img.cols; j++)
    {
        uchar* p = img.ptr<uchar>(i, j);
        //操作像素
        //int value = p[0];
        //。。。。。。
    }
    
先行后列的方式
单通道
for (int i = 0; i < img.rows; i++)
{
    uchar* p = img.ptr<uchar>(i);
	for (int j = 0; j < img.cols; j++)
    {
		//操作像素
        //int value = p[j];
        //。。。。。。
    }
}



多通道
效率慢的方式
for(int i = 0;i<img.rows;i++)
	for (int j = 0; j < img.cols; j++)
    {
		uchar* p = img.ptr<uchar>(i, j);
        //操作像素
        //int B_value = p[0];
        //int G_value = p[1];
        //int R_value = p[2];
        //。。。。。。
	}
普遍使用的方式
for (int i = 0; i < img.rows; i++)
{
    uchar* p = img.ptr<uchar>(i);
    for (int j = 0; j < img.cols*3; j+=3)
    {
        //操作像素
        //int B_value = p[j];
        //int G_value = p[j+1];
        //int R_value = p[j+2];
        //。。。。。。
    }
}

你可能感兴趣的:(c++,java,算法)