OpenCV3 第五章学习笔记-------core组件进阶

目录

一、访问图像中的像素

二、ROI区域图像叠加&图像混合

三、分离颜色通道、多通道图像混合

四、图像对比度、亮度值调整、

五、离散傅里叶变换

六、输入输出XML和YAML文件


一、访问图像中的像素

  • 指针的方式

    void colorReduce(Mat& inputImage, Mat& outputImage, int div) //访问像素的几种方法
    {
    	
    	// ------------- 法一:指针访问 -------------------------------
    	outputImage = inputImage.clone();						//图像矩阵大小取决于所用颜色模型,连续存储是图像各行一行一行连起来,形成一个长行
    	int rowNumber = outputImage.rows;						// 行数
    	int colNumber = outputImage.cols*outputImage.channels(); // (每个像素有几个通道数就有几列表示)
    	// 双重循环,遍历所有像素值
    	for (int i = 0; i < rowNumber; i++)	//行循环
    	{
    		uchar* data = outputImage.ptr<uchar>(i);			// 获取第i行首地址
    		for (int j = 0; j < colNumber; j++)	//列循环
    		{
    			data[j] = data[j] / div * div + div / 2;	//颜色缩减
    		}
    	}
    }	

     

 

  • 迭代器操作

void colorReduce(Mat& inputImage, Mat& outputImage, int div) //访问像素的几种方法
{	
// ---------------------- 法二:迭代器操作像素 ------------------------------
	// 参数注备
	outputImage = inputImage.clone();
	// 获取迭代器
	Mat_<Vec3b>::iterator it = outputImage.begin<Vec3b>();	// 初始位置的迭代器
	Mat_<Vec3b>::iterator itend = outputImage.end<Vec3b>();	// 终止位置的迭代器
	// 存取彩色图像像素
	for (; it !=  itend; ++it)
	{
		// 开始处理每个像素
		(*it)[0] = (*it)[0] / div * div + div / 2;
		(*it)[1] = (*it)[1] / div * div + div / 2;
		(*it)[2] = (*it)[2] / div * div + div / 2;
	}
}

  • 动态地址

    void colorReduce(Mat& inputImage, Mat& outputImage, int div) //访问像素的几种方法
    {	
    // -------------------- 法三 动态地址计算 ----------------------------------
    	// 参数准备
    	outputImage = inputImage.clone();
    	int rowNumber = outputImage.rows;
    	int colNumber = outputImage.cols;
    	// 存取彩色图像像素
    	for (int i = 0; i < rowNumber; i++)
    	{
    		for (int j = 0; j <colNumber; j++)
    		{
    			outputImage.at<Vec3b>(i, j)[0] = outputImage.at<Vec3b>(i, j)[0] / div * div + div / 2;//蓝色
    			outputImage.at<Vec3b>(i, j)[1] = outputImage.at<Vec3b>(i, j)[1] / div * div + div / 2;//绿色
    			outputImage.at<Vec3b>(i, j)[2] = outputImage.at<Vec3b>(i, j)[2] / div * div + div / 2;//红色
    
    		}
    
    	}
    }

     

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

二、ROI区域图像叠加&图像混合

三、分离颜色通道、多通道图像混合

四、图像对比度、亮度值调整、

五、离散傅里叶变换


六、输入输出XML和YAML文件


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值