b g opencv读入的图片 r_OpenCV提取显示一张图片(或者视频)的R,G,B颜色分量
使用OpenCV可以提分別提取顯示一張圖片(或者視頻)的R,G,B顏色分量。效果如下。
原圖:
R:
G:
B:
示例代碼如下,貌似很久以前網(wǎng)上找的的,邏輯很清晰,就是把R,G,B三個(gè)分量分開,然后顯示出來(lái),就不注釋了。
#include "cv.h"
#include "highgui.h"
#include
void main(int argc,char **argv)
{
IplImage *img=cvLoadImage("test.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();
}
總結(jié)
以上是生活随笔為你收集整理的b g opencv读入的图片 r_OpenCV提取显示一张图片(或者视频)的R,G,B颜色分量的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 双粗虚线中间一条实线_马路中间有一条黄色
- 下一篇: mysql查询父子关系树_swt 生成树