2015-07-13有关opencv 中三通道图像赋值问题
来源:互联网 发布:软件运营工资待遇 编辑:程序博客网 时间:2024/05/22 23:59
最近想把直线写的博客都整理到一起, 并且加注正确标签,便于以后管理及回顾
原文地址
今天 本来是想将RGB图像转成Lab图像,并且存储在ColorLab中,但是花了好大的力气最终转换出来的L,a,b值都存不到ColorLab中,
最终:初始化ColorLab为:
Mat ColorLab;ColorLab.create(GassionImg.size(),CV_32FC3); //将图像转到L a b 空间
在逐个访问该Mat型矩阵时,用
ColorLab.at<Vec3f>(i,j)[0]=l;ColorLab.at<Vec3f>(i,j)[1]=a;ColorLab.at<Vec3f>(i,j)[2]=b;
而不要使用先初始化一个指针p指向该ColorLab的一行,再用p[3*i]=l ;p[3*i+1]=a;p[3*i+2]=b的方式,因为这时候cout出来的都是乱码,根本与求得的L a b的值不一样。
最终存储ColorLab的程序:
uchar *pa,*pb,*pc,*p; for (int i=0;i<Imgbgr[0].rows;i++) { pa=Imgbgr[0].ptr<uchar>(i); pb=Imgbgr[1].ptr<uchar>(i); pc=Imgbgr[2].ptr<uchar>(i); //p=ColorLab.ptr<uchar>(i); for (int j=0;j<Imgbgr[0].cols;j++) { float l,a,b; rgb2lab (pa[j],pb[j],pc[j], l,a,b); ColorLab.at<Vec3f>(i,j)[0]=l; ColorLab.at<Vec3f>(i,j)[1]=a; ColorLab.at<Vec3f>(i,j)[2]=b; //p[3*j]=l; //p[3*j+1]=a; //p[3*j+2]=b; //将图像转到Lab空间 cout<< l<< " "<< ColorLab.at<Vec3f>(i,j)[0]<<endl; cout<<a<<" "<< ColorLab.at<Vec3f>(i,j)[1]<< endl; cout<< b<<" "<< ColorLab.at<Vec3f>(i,j)[2]<< endl; /*pa[j]=l; pb[j]=a; pc[j]=b; */ } }
哇塞!!花了一下午的时间就搞定一个这!!!!!!!!!!!!!真是气死人了。
阅读全文
0 0
- 2015-07-13有关opencv 中三通道图像赋值问题
- OpenCV中图像的通道问题
- opencv里面图像通道问题
- 关于opencv中图像的通道数问题
- 关于opencv中图像的通道数问题
- 关于opencv中图像的通道数(channels)问题
- 【OpenCV】四通道图像复制到三通道图像上
- python opencv 提取彩色图像三通道
- opencv 三通道图像的分通道显示
- OpenCV中cvSplit图像的通道分离
- OpenCV中cvSplit图像的通道分离
- opencv中图像的通道的解释
- opencv中图像的深度和通道
- opencv中图像深度与通道介绍
- opencv中彩色图像通道分离、合成
- 有关OpenCV中图像深度的问题,期待有人回答
- Halcon学习之三:有关图像通道的函数
- OpenCV分离图像通道
- ubuntu 14.04下安装openssl
- BZOJ 1342 单调队列
- zabbix监控Nginx
- nginx
- iOS开发-AutoreleasePool是什么时候销毁的?
- 2015-07-13有关opencv 中三通道图像赋值问题
- 利用using Microsoft.Office.Interop.Excel生成excel,向单元格中添加图片
- 文章标题
- poi表格读取
- 文章标题
- android.database.sqlite.SQLiteException: table userinfo has no column named signature (code 1): , w
- Android:获取屏幕的宽度和高度
- 公钥、私钥和数字证书
- 文章标题