opencv分rgb显示
// opencv2.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include #include "opencv2/highgui/highgui.hpp" #include "opencv2/imgproc/imgproc.hpp" #include "opencv2/features2d/features2d.hpp" #include "cv.h" #include "highgui.h" #include using namespace cv; using namespace std; int main(int argc, char **argv) { IplImage *img = cvLoadImage("C:\Users\cql\Desktop\timg.bmp", 1); IplImage *channel_r = cvCreateImage(cvGetSize(img), IPL_DEPTH_8U, 1); IplImage *channel_g = cvCreateImage(cvGetSize(img), IPL_DEPTH_8U, 1); IplImage *channel_b = cvCreateImage(cvGetSize(img), IPL_DEPTH_8U, 1); IplImage *img_r = cvCreateImage(cvGetSize(img), IPL_DEPTH_8U, 3); IplImage *img_g = cvCreateImage(cvGetSize(img), IPL_DEPTH_8U, 3); IplImage *img_b = cvCreateImage(cvGetSize(img), IPL_DEPTH_8U, 3); cvSplit(img, channel_b, channel_g, channel_r, NULL); cvMerge(channel_b, 0, 0, 0, img_b); cvMerge(0, channel_g, 0, 0, img_g); cvMerge(0, 0, channel_r, 0, img_r); cvNamedWindow("ImageOrigin", CV_WINDOW_AUTOSIZE); cvNamedWindow("Image_R", CV_WINDOW_AUTOSIZE); cvNamedWindow("Image_G", CV_WINDOW_AUTOSIZE); cvNamedWindow("Image_B", CV_WINDOW_AUTOSIZE); cvShowImage("ImageOrigin", img); cvShowImage("Image_R", img_r); cvShowImage("Image_G", img_g); cvShowImage("Image_B", img_b); cvSaveImage("img_red.bmp", img_r); cvSaveImage("img_green.bmp", img_g); cvSaveImage("img_blue.bmp", img_b); cvWaitKey(0); cvReleaseImage(&img); cvReleaseImage(&img_r); cvReleaseImage(&img_g); cvReleaseImage(&img_b); cvDestroyAllWindows(); return 0; }
运行结果:
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
暂时没有评论,来抢沙发吧~