OpenCV提取显示一张图片(或者视频)的R,G,B颜色分量
2016-08-22 10:48
633 查看
原文地址:http://blog.csdn.net/leixiaohua1020/article/details/19020903
使用OpenCV可以提分别提取显示一张图片(或者视频)的R,G,B颜色分量。效果如下。
原图:
R:
G:
B:
示例代码如下,貌似很久以前网上找的的,逻辑很清晰,就是把R,G,B三个分量分开,然后显示出来,就不注释了。
[cpp]
view plain
copy
#include "cv.h"
#include "highgui.h"
#include <cxcore.h>
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();
}
使用OpenCV可以提分别提取显示一张图片(或者视频)的R,G,B颜色分量。效果如下。
原图:
R:
G:
B:
示例代码如下,貌似很久以前网上找的的,逻辑很清晰,就是把R,G,B三个分量分开,然后显示出来,就不注释了。
[cpp]
view plain
copy
#include "cv.h"
#include "highgui.h"
#include <cxcore.h>
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();
}
相关文章推荐
- OpenCV提取显示一张图片(或者视频)的R,G,B颜色分量
- OpenCV提取显示一张图片(或者视频)的R,G,B颜色分量
- OpenCV提取显示一张图片(或者视频)的R,G,B颜色分量
- OpenCV提取显示一张图片(或者视频)的R,G,B颜色分量
- OpenCV提取显示一张图片(或者视频)的R,G,B颜色分量
- OpenCV提取显示一张图片(或者视频)的R,G,B颜色分量
- OpenCV提取一张图片(或者视频)的R,G,B颜色分量
- ios--OpenCV--提取图片(或者视频)的R,G,B颜色分量
- OpenCV提取显示一张图片的R,G,B颜色分量
- OpenCV提取显示一张图片的R,G,B颜色分量
- OpenCV入门系列(4):显示一张图片和一个视频
- opencv第二章-显示一张图片和播放avi视频
- opencv第一个例子:读入一张图片并显示
- Kinect开发学习笔记之(四)提取颜色数据并用OpenCV显示
- Kinect开发学习笔记之(四)提取颜色数据并用OpenCV显示
- iOS 点击cell改变背景颜色或者图片&&cell中其他部分取消高亮显示
- 使用OpenCV的cvLoadImage()函数或者imShow()函数在显示图片时,窗口总是显示灰色
- 02-Opencv 之打开一张图片,然后用鼠标切图然后显示出来
- OPenCV学习之视频读取,与帧的提取、显示与保存
- openCV—Python(7)—— 彩色图像R、G、B分量的提取与合并及其相关颜色空间的转化