Opencv回顾--Mat类赋值像素级操作进行颜色反转

这篇博客回顾了OpenCV中的Mat类,探讨了如何进行像素级的颜色反转操作。文章详细介绍了通过Vec3b理解像素结构,以及利用迭代器和指针两种方式遍历并修改Mat矩阵中的像素值。
摘要由CSDN通过智能技术生成

Mat
赋值和创建:


	Mat A = imread("images/test.png");
	Mat B=A;赋值
	Mat C=A.clone(); 克隆
	Mat D;
	A.copyTo(D);复制
		
		// 创建空白图像
	Mat E= Mat::zeros(A.size(), A.type());	创建矩阵
	Mat F = Mat::zeros(Size(512, 512), CV_8UC3);8位3通道
	Mat G= Mat::ones(Size(512, 512), CV_8UC3);
	
	Mat kernel = (Mat_<char>(3, 3) << 0, -1, 0,
	0, -1, 0,
	0, -1, 0);
						创建了一个3X3的矩阵
						0 -1 0
						0 -1 0
						0 -1 0

像素级操作方式
因为Mat本质就是矩阵 所以可以通过循环来进行读取每个点的像素值进行操作

	int height = src.rows; 获取图像的列
	int width = src.cols;获取图像的行
	int ch = src.channels();图像的通道数
		for (int row = 0; row < height; row++) {
			for (int col = 0; col < width; col++) {
			//通过行列来进行循环读取每个像素的值
				if (ch == 3) {
				//如果是三通道图像
					Vec3b bgr = src.at<Vec3b>(row, col);
					bgr[0] = 255 - bgr[0];
					bgr[1] = 255 - bgr[1];
					bgr[2] 
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值