本文主要是介绍opencv4.8 系列一图像操作1,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
使用 通道创建图像
Mat m1, m2;m1 = image.clone();image.copyTo(m2);//创建空白图像Mat m3 = Mat::zeros(Size(400,400),CV_8UC3);m3 = Scalar(255, 0, 0);复制图像```cpp
imshow("m3", m3);Mat m4 = Mat::zeros(Size(400, 400), CV_8UC3);m4 = Scalar(0,0,255);imshow("m4", m4);
使用行列 操作图像
for (int row = 0; row < h;row++){for (int cols = 0; cols < w;cols++){if (dims==1) //灰度图像{int pv = image.at<uchar>(row,cols);image.at<uchar>(row, cols)=255-pv;}if (dims==3) {//彩色图像Vec3b bgr=image.at<Vec3b>(row, cols);image.at<Vec3b>(row, cols)[0]= 255 - bgr[0];image.at<Vec3b>(row, cols)[1] = 255 - bgr[1];image.at<Vec3b>(row, cols)[2] = 255 - bgr[2];}}}
使用指针 操作图像、
for (int row = 0; row < h; row++){uchar* current_row = image.ptr<uchar>(row);for (int cols = 0; cols < w; cols++){if (dims == 1) //灰度图像{int pv = *current_row;*current_row++ = 255 - pv;}if (dims == 3) {//彩色图像*current_row++ = 255 - *current_row;*current_row++ = 255 - *current_row;*current_row++ = 255 - *current_row;}}}
这篇关于opencv4.8 系列一图像操作1的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!