opencv实现图像像素点反转-创新互联

最近在学习opencv图像处理,自学到将一副原图像上的像素点像素值反转,再输出新的图像

成都创新互联长期为1000+客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为寿县企业提供专业的网站建设、成都网站建设寿县网站改版等技术服务。拥有10多年丰富建站经验和众多成功案例,为您定制开发。

,代码如下:

#include

#include

#include

using namespace cv;

using namespace std;

int main(int argc, char **argv)

{

Mat gray_image;

Mat src = imread("C:/Users/Administrator/Desktop/1.jpg");

if (!src.data)

{

cout << "could not load image..." << endl;

return -1;

}

cvNamedWindow("原图",WINDOW_AUTOSIZE);

imshow("原图", src);

cvtColor(src, gray_image, CV_BGR2GRAY);

//namedWindow("output", CV_WINDOW_AUTOSIZE);

//imshow("output", gray_image);

//int height = gray_image.rows;

//int width = gray_image.cols;

Mat dst;

dst.create(src.size(), src.type());

int height = src.rows;

int width = src.cols;

int nc = src.channels();

for (int row = 0; row < height; row++) {

for (int col = 0; col < width; col++) {

//单通道

if (nc == 1) {

int gray = gray_image.at(row, col);

gray_image.at(row, col) = 255 - gray;

}

//三通道

else if (nc == 3) {

int b = src.at(row,col)[0];

int g = src.at(row, col)[1];

int r = src.at(row, col)[2];

dst.at(row, col)[0] = 255-b;

dst.at(row, col)[1] = 255 - g;

dst.at(row, col)[2] = 255 - r;

gray_image.at(row, col) = max(r, max(b, g));//取大值作为灰度值

}

}

}

imshow("output", gray_image);

//bitwise_not(src, dst);

imshow("gray invert", dst);

waitKey(0);

return 0;

}

opencv 实现图像像素点反转

opencv 实现图像像素点反转

opencv 实现图像像素点反转

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


本文标题:opencv实现图像像素点反转-创新互联
文章URL:http://scyanting.com/article/cedgdi.html