文档章节

OpenCV提取显示一张图片(或者视频)的R,G,B颜色分量

雷霄骅
 雷霄骅
发布于 2014/08/16 13:52
字数 232
阅读 45
收藏 0

使用OpenCV可以提分别提取显示一张图片(或者视频)的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();
}




本文转载自:http://blog.csdn.net/leixiaohua1020/article/details/19020903

雷霄骅
粉丝 211
博文 419
码字总数 2129
作品 4
朝阳
程序员
私信 提问
2- OpenCV+TensorFlow 入门人工智能图像处理-opencv入门

本章内容 Anaconda一站式开发环境 OPenCV基础入门(像素,图片的封装格式,编码格式) TensorFlow基础入门 本章主要内容 OpenCV初识 OpenCV文件结构 Demo1 图片读取: 图片封装格式 压缩编码 De...

天涯明月笙
2018/04/05
0
0
[Python图像处理] 十四.基于OpenCV和像素处理的图像灰度化处理

版权声明:本文为博主原创文章,转载请注明CSDN博客源地址!共同学习,一起进步~ https://blog.csdn.net/Eastmount/article/details/88785768 该系列文章是讲解Python OpenCV图像处理知识,前...

Eastmount
03/25
0
0
[Python图像处理] 三.获取图像属性、兴趣ROI区域及通道处理

版权声明:本文为博主原创文章,转载请注明CSDN博客源地址!共同学习,一起进步~ https://blog.csdn.net/Eastmount/article/details/82177300 该系列文章是讲解Python OpenCV图像处理知识,前...

Eastmount
2018/08/29
0
0
iOS实现字符串动画 灰度图片

前言 最近网上看了一个叫BadApple的字符串动画,很有意思。作者是用python+OpenCv实现的转换流程。而OpenCv又是一个开源项目,我们为什么不能把这个效果移植到iOS手机上呢? 原文地址 正文 首...

秦无炎
04/29
11
0
[Python图像处理] 一.图像处理基础知识及OpenCV入门函数

版权声明:本文为博主原创文章,转载请注明CSDN博客源地址!共同学习,一起进步~ https://blog.csdn.net/Eastmount/article/details/81748802 该系列文章是讲解Python OpenCV图像处理知识,前...

Eastmount
2018/08/16
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Android面试常客之Handler全解

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/fnhfire_7030/article/details/79518819 前言:又到了一年...

shzwork
26分钟前
4
0
position sticky 定位

本文转载于:专业的前端网站➫position sticky 定位 1、兼容性 https://caniuse.com/#search=sticky chrome、ios和firefox兼容性良好。 2、使用场景 sticky:粘性。粘性布局。 在屏幕范围内时...

前端老手
33分钟前
4
0
CentOS 7 yum 安装 PHP7.3 教程

参考:https://www.mf8.biz/centos-rhel-install-php7-3/ 1、首先安装 EPEL 源: yum install epel-release 安装 REMI 源: yum install http://rpms.remirepo.net/enterprise/remi-release......

dragon_tech
48分钟前
4
0
Linux物理网卡聚合及桥接

Linux内部实现的bridge可以把一台机器上的多张网卡桥接起来,从而把自己作为一台交换机。同时,LInux bridge还支持虚拟端口,即桥接的不一定都是物理网卡接口,还可以是虚拟接口。目前主要表...

xiangyunyan
48分钟前
4
0
一起来学Java8(一)——函数式编程

在这篇文章中,我们将了解到在Java8下如何进行函数式编程。 函数式编程 所谓的函数式编程就是把函数名字当做值进行传递,然后接收方拿到这个函数名进行调用。 首先来看下JavaScript如何进行函...

猿敲月下码
今天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部