
#include<opencv2/opencvhpp>
#include<iostream>
using namespace std;
using namespace cv;
int main()
{
Mat img=imread("f:/1jpg");
int height=imgrows;
int width=imgcols;
for(int i=0;i<height;i++)
{
unsigned char data=imgdata+iwidthimgchannels();
for(int j=0;j<width;j++)
{
int r=(data+jimgchannels());
int g=(data+jimgchannels()+1);
int b=(data+jimgchannels()+2);
cout<<r<<" "<<g<<" "<<b<<endl;
}
}
imgrelease();
system("pause");
return 1;
}
构造Mat image1(m_nDestX, m_nDestY, CV_8UC1, (unsigned char)pImageData);
Mat image2 = image1(Rect(2,2,99,99)); // 共用一份数据
或
Mat image2 = image1(Rect(2,2,99,99))clone(); // 使用数据副本
因为jpg是真彩色图像,每点的颜色直接由rgb的值确定,因此没有颜色映射表。
如果是一些索引格式的图像,如gif,256色的bmp等,则有颜色映射表和矩阵两部分组成。每点的颜色由矩阵中的值对应的颜色映射表决定。
1、演示使用的软件为图像处理软件Photoshop,使用的版本为photoshop CS6。
2、首先打开photoshop图像处理软件,并点击上方文件菜单,找到想要进行处理的,打开。
3、打开后,将鼠标移动到菜单中,选择图像菜单,在图像菜单下可以看到模式菜单。
4、点击模式菜单,在展开的二级菜单中找到RGB颜色并选择即可将图像修改为RGB格式。
要保存成tif格式的话,方法很多,编写程序可以完成,不编写程序的话也可以,点击输出的fill,下拉菜单下有个另存为,然后就可以选了。显示完以后或许看不到,你通过修改属性信息里面的symbology项选stretched项用灰度图显示出来,不要用RGB显示即可。我的可以成功显示出来,希望对你有帮助
单通道或三通道图像,8bit或16bit无符号数,其他类型输入需要用函数进行转换 (这个还是挺重要的,之前想存一个float型的Mat, 发现并没有好的办法,最后解决方案是存成xml文件):
convertTo: 转换数据类型不同的Mat
cvtColor: 转换不同通道的Mat (利用第四个参数)
以上就是关于我现在有用opencv得到的jpg格式的一帧图片,请问我怎么把图片改变为rgb格式全部的内容,包括:我现在有用opencv得到的jpg格式的一帧图片,请问我怎么把图片改变为rgb格式、opencv Mat对象中怎么获取制定行列数据、matlab中jpg转换为mat文件后,数据矩阵还是三维的,而颜色矩阵却是0*0,等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)