foggia2004

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);
}

 

posted on 2017-03-21 21:17  foggia2004  阅读(87)  评论(0编辑  收藏  举报

导航