图像的RGB通道显示

// HelloOpenCV.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include <iostream>
#include <cv.h>
#include <highgui.h>
#pragma comment( linker, "/subsystem:\"windows\" /entry:\"mainCRTStartup\"" ) 
using namespace std;
int main(int argc, _TCHAR* argv[])
{
	cvNamedWindow( "RedChannel", 1 );
    cvNamedWindow( "GreenChannel", 1 );
    cvNamedWindow( "BlueChannel", 1 );

	IplImage* src = cvLoadImage( "C:\\Users\\lenmovo\\Pictures\\lena.jpg", 1 );
    IplImage * RedChannel = cvCreateImage( cvGetSize(src), 8, 1);
    IplImage * GreenChannel = cvCreateImage( cvGetSize(src), 8, 1);
    IplImage * BlueChannel = cvCreateImage( cvGetSize(src), 8, 1);
	cvSetZero(RedChannel);
	cvSetZero(GreenChannel);
	cvSetZero(BlueChannel);

    cvSplit(src,BlueChannel,GreenChannel,RedChannel,0);

	//显示灰度
	cvShowImage( "RedChannel", RedChannel );
    cvShowImage( "GreenChannel", GreenChannel );
    cvShowImage( "BlueChannel", BlueChannel );
	cvWaitKey(0);

	IplImage * RedChannel2 = cvCreateImage( cvGetSize(RedChannel),IPL_DEPTH_8U,3);
    IplImage * GreenChannel2 = cvCreateImage( cvGetSize(GreenChannel),IPL_DEPTH_8U,3);
    IplImage * BlueChannel2= cvCreateImage( cvGetSize(BlueChannel),IPL_DEPTH_8U,3);
	cvSetZero(RedChannel2);
	cvSetZero(GreenChannel2);
	cvSetZero(BlueChannel2);

	//显示颜色
	cvMerge(0,0,RedChannel,0,RedChannel2);
	cvMerge(0,GreenChannel,0,0,GreenChannel2);
	cvMerge(BlueChannel,0,0,0,BlueChannel2);
    cvShowImage( "RedChannel", RedChannel2 );
    cvShowImage( "GreenChannel", GreenChannel2 );
    cvShowImage( "BlueChannel", BlueChannel2 );

    cvWaitKey(0);
    cvReleaseImage( &RedChannel );
    cvReleaseImage( &GreenChannel );
    cvReleaseImage( & BlueChannel );
	cvReleaseImage( &RedChannel2 );
    cvReleaseImage( &GreenChannel2 );
    cvReleaseImage( &BlueChannel2 );
    return 0;
}

 

单通道直接显示是作为灰度显示,

要彩色显示时,需要改为RGB的3通道显示。


 

参考:

http://blog.youkuaiyun.com/boyhailong/article/details/7028796

http://blog.youkuaiyun.com/xiaowei_cqu/article/details/7558657#comments

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值