OpenCV提取显示一张图片(或者视频)的R,G,B颜色分量
使用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(); }
OpenCV提取显示一张图片(或者视频)的R,G,B颜色分量的更多相关文章
- Matlab 提取R,G,B颜色分量
>> im = imread('ny.png'); >> r = im(:,:,1); >> g = im(:,:,2); >> b = im(:,:, ...
- Python+OpenCV图像处理(一)——读取显示一张图片
先在此处先声明,后面学习python+opencv图像处理时均参考这位博主的博文https://blog.csdn.net/u011321546/article/category/7495016/2? ...
- opencv实例一:显示一张图片
第一个简单的实例,显示一张图片: 1)代码如下 /*************************************************************************** ...
- @Html.Raw显示一张图片
在ASP.NET MVC中,显示一张图片,是很方便的事情,完全可以在控制器中组合html代码,并传给视图. 下面一个简单的例子: public ActionResult HtmlRawImage() ...
- opencv提取截获图像(总结摘来)
opencv提取截获图像(总结摘来) http://blog.csdn.net/wuxiaoyao12/article/details/7305865 版权声明:本文为博主原创文章,未经博主允许不得转 ...
- 仿AS语法来写HTML5—第1章,显示一张图片
最近开始学习html5,因为一直都是研究as,所以还是觉得as顺眼一点,但是html5也不能不学,于是就想出了,可以把html5用as的语法来写出来,做游戏应该来的比较顺手一些,下面开始第一篇 第一篇 ...
- swiper轮播问题之二:默认显示3张图片,中间显示全部两边显示部分
其二:项目遇到比较有点要求的轮播图,默认显示3张图片,中间显示全部,两边显示部分.如图: 网上找了也没有找到合适的,最后经过自己摸索写了出来,贴出代码分享给大家. CSS .swipe ...
- 使用Fresco实现简单的显示一张图片
使用Fresco实现显示一张图片 仅仅是下载一张图片,在下载完之前,先显示一张站位图 效果图 源码 下载地址(Android Studio工程):http://download.csdn.net/de ...
- 用仿ActionScript的语法来编写html5——第一篇,显示一张图片
第一篇,显示一张图片 一,代码对比 as代码: public var loader:Loader; public function loadimg():void{ loader = new Loade ...
随机推荐
- vs2017 +CUDA 9.0配置
环境: 1.Win7 64位 旗舰版 2.VS2017 3.CUDA 9.0 安装过程比较简单,直接运行在官网下载的CUDA安装包就可以了. 建议先安装VS,再安装CUDA.这样安装完之后会在VS里直 ...
- Python3 错误和异常
Python有两种错误很容易辨认:语法错误和异常. 语法错误 Python 的语法错误或者称之为解析错,是初学者经常碰到的,如下实例 >>> while True print('He ...
- JDBC访问数据库的一些小技巧
一. 连接 1.使用try with resources关闭JDBC资源 示例代码如下: public List<User> getUser(int userId) { try (Conn ...
- Java中Semaphore(信号量)的使用
Semaphore的作用: 在java中,使用了synchronized关键字和Lock锁实现了资源的并发访问控制,在同一时间只允许唯一了线程进入临界区访问资源(读锁除外),这样子控制的主要目的是为了 ...
- linux下内存大小、起始地址的解析与修改
在实际的工作中,由于产品型号的不同,经常需要调整linux所管理的内存的大小,而内核在启动阶段,会两次去解析从uboot传递过来的关于内存的信息,具体如下: 一.解析从uboot传递过来的tag(在p ...
- Dynamics CRM2016 Web Api之更新时间字段值
前篇我们论述了时间字段的查询,本篇来论述下时间字段的更新. 还是以之前建的当地时间(时间行为为用户当地时间)字段来测试 可以看到web api更新的是数据库的时间,而在前台的反映就是做了加8处理,所以 ...
- 等价于n*n的矩阵,填写0,1,要求每行每列的都有偶数个1 (没有1也是偶数个),问有多少种方法。
#define N 4 /* * 公式: * f(n) = 2^((n - 1) ^2) */ int calWays(int n) { int mutiNum = (n - 1) * (n - 1) ...
- RabbitMQ消息队列入门篇(环境配置+Java实例+基础概念)
一.消息队列使用场景或者其好处 消息队列一般是在项目中,将一些无需即时返回且耗时的操作提取出来,进行了异步处理,而这种异步处理的方式大大的节省了服务器的请求响应时间,从而提高了系统的吞吐量. 在项目启 ...
- 【NPR】漫谈轮廓线的渲染
写在前面 好久没写文章.最近在看<Real Time Rendering, third edition>这本书,看到了NPR这一章就想顺便记录下一些常见的轮廓线渲染的方法. 在非真实感渲染 ...
- Xcode中的变量模板(variable template)的用法
大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! hopy ;) 你可能经常会写一些小的代码片段,里面自然少不了一些关键的变量. ...