5.使用std的迭代器访问并修改图像

Posted foggia2004

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了5.使用std的迭代器访问并修改图像相关的知识,希望对你有一定的参考价值。

void Test_ColorReduceByIterator()
{
	Mat g_srcImage=imread("D:\\\\OpenCV Projects\\\\OpenCV_Test_Image\\\\6.jpg");
	Mat g_tmpImage;
	g_tmpImage=g_srcImage.clone();
	Mat_<Vec3b>::iterator it_start=g_tmpImage.begin<Vec3b>();
	Mat_<Vec3b>::iterator it_end=g_tmpImage.end<Vec3b>();
	for(;it_start!=it_end;it_start++)
	{
		//由于是3通道的图像,所有一次要处理3个数据,也可for循环处理
		(*it_start)[0]=(*it_start)[0]/60*60+60/2; //B通道
		(*it_start)[1]=(*it_start)[1]/60*60+60/2; //G通道
		(*it_start)[2]=(*it_start)[2]/60*60+60/2; //R通道
	}
	imshow("原图",g_srcImage);
	imshow("change",g_tmpImage);
}

 

以上是关于5.使用std的迭代器访问并修改图像的主要内容,如果未能解决你的问题,请参考以下文章

std::map 访问线程是不是安全,如果它的迭代器永远不会失效

序列容器-元素只能按顺序访问

OpenCV实战——像素操作

end() 返回的迭代器对于哪个标准容器(如果有)是持久的?

迭代 std::list 时擦除

通过迭代器访问另一个向量内的向量元素?