我现在有用opencv得到的jpg格式的一帧图片,请问我怎么把图片改变为rgb格式

我现在有用opencv得到的jpg格式的一帧图片,请问我怎么把图片改变为rgb格式,第1张

#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,等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9430082.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-28
下一篇2023-04-28

发表评论

登录后才能评论

评论列表(0条)

    保存