我们前面学习了如何使用opencv载入一张图片并将其显示出来,大家想必也很喜欢opencv封装好的函数,使用起来是不是非常方便?今天说的这三个方法也很简单,opencv已经将其封装好了,除此之外还有另一个函数,将24位彩图转换为灰度图,也是封装好的函数,效果图如下:
详细代码如下
#include "cv.h" #include "highgui.h" int main( int argc, char** argv ) { IplImage* pImg; //声明IplImage指针 //载入图像,强制转化为Gray if( argc == 3 && (pImg = cvLoadImage( argv[1], 0)) != 0 ) { IplImage* pImg2 = cvCreateImage(cvGetSize(pImg), pImg->depth, pImg->nChannels); cvCopy(pImg, pImg2, NULL); cvSaveImage(argv[2], pImg2);//把图像写入文件 cvNamedWindow( "Image", 1 );//创建窗口 cvShowImage( "Image", pImg );//显示图像 cvWaitKey(0); //等待按键 cvDestroyWindow( "Image" );//销毁窗口 cvReleaseImage( &pImg ); //释放图像 cvReleaseImage( &pImg2 ); //释放图像 return 0; } return -1; }
使用方法老规矩,使用命令行带参数,具体可参考前面的文章,或者自行百度,再或者可以参考上图中命令行里的格式。
程序首先判断是否传入了3个参数,并且尝试加载第二个参数代表的图片,成功则将其转换为灰度图,然后将转换后的图片保存在传入的第三个参数路径中,并创建窗口显示出来。
原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/241659.html