刚开始学习opencv2实,不知道怎么将彩图装换成灰度图像,因为,我的变量是cv::mat类型的,但是cvcvtcolor的形参是iplimage*类型的,所以就查找了很多文章,终于找到了二者直接的转换方法。如下:
int main()
{
IplImage*iplImage = cvLoadImage("get.jpg",1);
IplImage* resImage=cvCreateImage(cvGetSize(iplImage),8,1);
cvCvtColor(iplImage,resImage,CV_BGR2GRAY);
cv::Mat result(resImage);
cv::Mat image(iplImage,false);
cv::namedWindow("Image");
cv::imshow("Image",image);
cv::namedWindow("Result");
cv::imshow("Result",result);
cv::waitKey(20000);
cvReleaseImage(&iplImage);
cvReleaseImage(&resImage);
return 1;
}
先用iplimage类型变换后,在转成cv::mat类型的输出,记得一定要销毁原iplimage*类型变量,图形如下
虽然在用cvshowimage也能实现灰度图像的显示,但是这个方法适用于习惯用opencv2的新手。我也是新手,希望这些对大家有点帮助。