"cv::Mat_"容器 的 使用 及 示例

 

"cv::Mat"是一种矩阵, 包括多通道和单通道. 可以转换为容器(container), 并使用容器的相关操作. 需要用到"cv::Mat_".

如: cv::Mat image = cv::imread("heels.jpg"); cv::Mat_<cv::Vec3b> cimage = image;

cv::Vec3b (typedef Vec<uchar, 3> Vec3b): 三维的uchar类型.

cv::Mat_: cv::Mat的引用(&).

代码(VS2012), 去掉图片的蓝色通道(BGR):

#include <opencv.hpp>  #include <iostream>    using namespace std;  using namespace cv;    int main (void) {  	cv::Mat image = cv::imread("heels.jpg");  	cv::Mat_<cv::Vec3b> cimage = image; // c 代表 "container"  	for(auto it = cimage.begin(); it != cimage.end(); ++it){  		(*it)[0] = 0;  	}  	cv::imshow("Heels", image);  	cv::waitKey(0);  	return 0;  }