OpenCV提取显示一张图片(或者视频)的R,G,B颜色分量
2014-02-11 00:28
477 查看
使用OpenCV可以提分别提取显示一张图片(或者视频)的R,G,B颜色分量。效果如下。
原图:
R:
G:
B:
示例代码如下,貌似很久以前网上找的的,逻辑很清晰,就是把R,G,B三个分量分开,然后显示出来,就不注释了。
原图:
R:
G:
B:
示例代码如下,貌似很久以前网上找的的,逻辑很清晰,就是把R,G,B三个分量分开,然后显示出来,就不注释了。
#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颜色分量
- ecshop给分类上传图片
- centos安装后的网卡配置
- 在 Linux 中如何移动文件
- nginx 配置文件
- linux 命令
- 初探Apache derby
- Linux怪谈——发狂的systemd-journald
- tomcat性能优化
- 一个关于live2d资料比较全面的网站
- hadoop问题
- linux命令小技巧
- Linux命令之tail - 输出文件尾部/动态监视文件尾部
- HBase完全分布式安装过程详解
- 24-Linux-服务-日志简介
- 如何将ECSHOP2.7.3后台左侧菜单中的云服务中心删除掉
- Ecshop中导航栏中使用二级菜单显示并调用子分类
- linux命令整理
- ecshop简单三部实现导航分类二级菜单