问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

用c++怎样从彩色图像中分解出R,G,B分量,并且分别保存

发布网友 发布时间:2022-07-13 12:35

我来回答

1个回答

热心网友 时间:2023-10-30 01:48

单单是图像的加载不是一两句代码就能搞定的。

如果你做图像方面的,不妨看看《Visual C++ 数字图像处理典型算法及实现》

推荐 opencv库,简单易学

例如使用opencv分离R,G,B三个分量有很多方法,如下:而且保存只需一个cvSave()函数。

#include <cv.h>
#include <highgui.h>

int main(int argc, char** argv)
{

IplImage* src = cvLoadImage( argv[1], 1 );
IplImage * RedChannel = cvCreateImage( cvGetSize(src), 8, 1);
IplImage * GreenChannel = cvCreateImage( cvGetSize(src), 8, 1);
IplImage * BlueChannel = cvCreateImage( cvGetSize(src), 8, 1);
IplImage * alphaChannel = cvCreateImage( cvGetSize(src), 8, 1);
cvSetImageCOI(src,1);
cvCopy(src,BlueChannel); //提取蓝色
cvSetImageCOI(src,2);
cvCopy(src,GreenChannel); //提取绿色
cvSetImageCOI(src,3);
cvCopy(src,RedChannel); //提取红色

cvNamedWindow( "RedChannel", 1 );
cvNamedWindow( "GreenChannel", 1 );
cvNamedWindow( "BlueChannel", 1 );
cvNamedWindow( "lphaChannel", 1 );

cvShowImage( "RedChannel", RedChannel );
cvShowImage( "GreenChannel", GreenChannel );
cvShowImage( "BlueChannel", BlueChannel );
cvShowImage( "lphaChannel", alphaChannel );

cvWaitKey(0);
cvReleaseImage( &RedChannel );
cvReleaseImage( &GreenChannel );
cvReleaseImage( & BlueChannel );
cvReleaseImage( & alphaChannel );

return 0;
}
/*#include <cv.h>
#include <highgui.h>

int main(int argc, char** argv)
{

IplImage* src = cvLoadImage( argv[1], 1 );
IplImage * RedChannel = cvCreateImage( cvGetSize(src), 8, 1);
IplImage * GreenChannel = cvCreateImage( cvGetSize(src), 8, 1);
IplImage * BlueChannel = cvCreateImage( cvGetSize(src), 8, 1);
IplImage * alphaChannel = cvCreateImage( cvGetSize(src), 8, 1);
cvCvtPixToPlane(src,BlueChannel,GreenChannel,RedChannel,NULL);

cvNamedWindow( "RedChannel", 1 );
cvNamedWindow( "GreenChannel", 1 );
cvNamedWindow( "BlueChannel", 1 );
cvNamedWindow( "lphaChannel", 1 );

cvShowImage( "RedChannel", RedChannel );
cvShowImage( "GreenChannel", GreenChannel );
cvShowImage( "BlueChannel", BlueChannel );
cvShowImage( "lphaChannel", alphaChannel );

cvWaitKey(0);
cvReleaseImage( &RedChannel );
cvReleaseImage( &GreenChannel );
cvReleaseImage( & BlueChannel );
cvReleaseImage( & alphaChannel );

return 0;
}
*/
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
想你花就开了是什么意思 ...轻弹簧下端固定在水平面上.一个小球从弹簧正上方某一高度处由静止... ...弹簧下端固定在水平地面上,质量为m的小球从轻弹簧的正上方某一高处... ...一竖直弹簧下端固定于水平地面上,小球从弹簧的正上方高为h的地方自... ...结婚证,孩子户口也在女方家,男方可以要求拿抚养权吗? 小男孩适合戴哪些翡翠小男孩适合戴什么翡翠 产后尿道口痛是什么原因 产后尿道口疼怎么回事 ...同种点电荷连线上和中垂线上电势的变化规律 办理北京银行需要什么手续 openCV中下面这个对像素做的什么变换啊,(r+g+b)/3是什么啊? 和4个朋友去温泉酒店把麻将K歌台球温泉和喝酒空瓶照片发朋友圈,男朋友出差看到第一时间问是不是还在那? 朋友给我发打麻将的照片我该怎么回 和身边的朋友打牌是什么感受? 信息流想要扩充覆盖维度,拓展推广渠道该怎么办? 突然感觉气急是怎么一回事 为何我的手机显示hd 20年前,俄特种兵救中国记者身亡,记者承诺照顾其妻儿,如今咋样? 一部重生的官场小说 俄罗斯3名记者中非遇害官方如何回应? 彩虹桥的结构是怎样的? 股市术语彩虹桥形态,弧形是向上的还是向下的? 应急管理局回应网传甘肃一地现火球状不明飞行物,该飞行物可能是什么? 假如在当地发现了不明飞行物一般向哪个部门汇报? 甘肃一地深夜现火球状不明飞行物,这到底是什么物体? 000151中成股份可以买吗,明天走势如何,会大涨吗 请教有关中成股份(000151)的问题 杭州市有哪些提供抵压贷款的网上公共平台? 噬血代码有恋爱剧情吗 我要给妈妈做菜,简单一点 大熊猫是一种怎样的动物? 你令我太失望了,用英语怎么说 sanc品牌m2082a显示器是多少寸? 你太令我失望了英语 跪求!翻译成英文「你太让我失望了、我好心痛,我并没有玩,我是认真的.」英文短句 翻译、就给分 你真让我失望用英语怎么说? 建行开户有怎样收费吗 沙发是皮的好 还是布艺的好,还是全实木的好? 电视要开通移动高清电视吗 2024年用苹果12pro Max 过时吗 侠盗飞车中的直升飞机怎么玩? 清丰县三月十一号南门百姓量贩门口打架视频 2010年7月2日新闻联播主要内容 清丰县加油站闹鬼是真的么 清丰县双庙乡2 月14号打架视频 新手如何打高光? 清丰限号是多少 谁知道清丰县最近发生了什么灵异事件? 女性之间在微信上聊私密话不? 女生跟我聊她私密事请问喜欢我吗