当前位置: 首页 > news >正文

新手建站教程报价单交换友情链接平台

新手建站教程报价单,交换友情链接平台,网站后台管理模板下载,温州市网站制作公司在做图像处理中,常用的函数接口有OpenCV中的Mat图像类,有时候需要直接用二维指针开辟内存直接存储图像数据,有时候需要用到CxImage类存储图像。本文主要是总结下这三类存储方式之间的图像数据的转换和相应的对应关系。 一、OpenCV的Mat类到图…

在做图像处理中,常用的函数接口有OpenCV中的Mat图像类,有时候需要直接用二维指针开辟内存直接存储图像数据,有时候需要用到CxImage类存储图像。本文主要是总结下这三类存储方式之间的图像数据的转换和相应的对应关系。

一、OpenCV的Mat类到图像二值指针的转换

以下为函数代码:

unsigned char** MatTopImgData(Mat img)
{//获取图像参数int row = img.rows;int col = img.cols;int band = img.channels;//定义图像二值指针unsigned char** pImgdata = new unsigned char*[band];for(int i=0;i<band;i++)pImgdata[i] = new unsigned char[row*col];for(int i=0;i<row;i++)  //行数--高度{unsigned char* data = img.ptr<unsigned char>(i); //指向第i行的数据for(int j=0;j<col;j++)      //列数 -- 宽度{for(int m=0;m<band;m++)     //将各个波段的数据存入数组pImgdata[m][i*col+j] = data[j*band+m];}}return pImgdata;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23

需要注意的是:(1)在Mat类中,图像数据的存储方式是BGR形式,这样得到的二维指针的数据存储顺序则为BGR形式。(2)在Mat类中图像无论是灰度图还是RGB图都是以以为指针的形式存储的,所以在读取每个数据时,先找到每行数据的首地址,再顺序读取每行数据的BGR的灰度值。(3)在Mat类中的row为行数,对应平时所说的图像的高度,col为列数对用图像的宽度。

二、图像二值指针到OpenCV的Mat类的转换

以下为函数代码:

Mat ImgData(unsigned char** pImgdata, int width, int height, int band)
{Mat Img;if(band == 1)       //灰度图Img.create(height, width, CV_8UC1);else                //彩色图Img.create(height, width, CV_8UC3);for(int i=0;i<height;i++)   //行数--高度{unsigned char* data = Img.ptr<unsigned char>(i); //指向第i行的数据for(int j=0;j<width;j++)        //列数 -- 宽度{for(int m=0;m<band;m++)     //将各个波段的数据存入数组data[j*band+m]=pImgdata[m][i*width+j];}}return Img;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20

三、CxImage类到图像二维指针的转换

以下为函数代码:

unsigned char** CxImageToPimgdata(CxImage Image)
{int width = Image.GetWidth();int height = Image.GetHeight();RGBQUAD rgbdata;unsigned char** pImgdata = new unsigned char*[3];for(int m=0;m<3;m++)pImgdata[m] = new unsigned char[width*height];for(int i = 0; i < width; i++){for(int j = 0; j < height; j++){//获取主窗口图片每一个像素的rgb数据rgbdata = Image.GetPixelColor(i, (height-j-1), true);                   pImgdata[0][j*width + i] = rgbdata.rgbRed;pImgdata[1][j*width + i] = rgbdata.rgbGreen;pImgdata[2][j*width + i] = rgbdata.rgbBlue;}}return pImgdata;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24

需要注意的是:CxImage读取图像数据后图像的原点是在图像的左下角,与我们的传统的图像数据原点为左上角相反,所以在读取图像时”(height-j-1)”的由来。

总结:

不同的实际情况中可能需要用到不同的图像库和对应的函数接口,因此经常需要用到这些不同的库的图像对象之间的数据的转换,实际根据情况进行下缓缓即可。

转载于:https://www.cnblogs.com/huty/p/8517048.html

http://www.lbrq.cn/news/2533645.html

相关文章:

  • 手机网站排名3天网站seo优化成为超级品牌
  • wordpress 时间归档seo搜索优化软件
  • 海盐市网站建设360推广官网
  • 网站建设栏目说明工程建设数字化管理平台
  • 建设学校网站论文网站关键词如何快速上首页
  • 重庆做网站seo优化选哪家好北京seo公司网站
  • 怎么做贝店式的网站刷seo关键词排名软件
  • 网站链接怎么做标记营销策划方案公司
  • 建站工具华为百度推广在线客服
  • 美女色情做视频网站有哪些电脑系统优化软件
  • wordpress商城建站教程软文宣传
  • 做网站图片多少钱成都百度推广账户优化
  • wordpress 播放大视频成都网站seo
  • 如何知道网站是用什么语言做的百度店铺
  • 设计灵感网站整理百度合作平台
  • 京挑客网站建设网络推广员要怎么做
  • 网站中宣传彩页怎么做的刷排名seo
  • 购物网站建设方案seo诊断a5
  • 专门做地图的网站温州seo推广外包
  • 海口市做网站的公司怎么样把广告做在百度上
  • 上海网络推广培训二十条优化措施全文
  • 一般网站建设步骤媒体发稿费用
  • 常州网站建设市场高清免费观看电视网站
  • 中企动力 网站建设 眼镜巨量引擎广告投放平台官网
  • 个人建网站需要什么手续查询网站
  • 哪里需要人做钓鱼网站网络游戏推广
  • 宁乡电商网站建设报价在线识别图片
  • 绵阳网站建设怎么做十大骗子教育培训机构
  • 泰安最好网站建设公司it教育培训机构排名
  • 室内设计培训网站重庆seo报价
  • graph attention network
  • 代码随想录算法训练营第三十六天
  • Flow Model Flow Matching
  • 简单线性回归模型原理推导(最小二乘法)和案例解析
  • 技术速递|GitHub Copilot 的 Agent 模式现已全面上线 JetBrains、Eclipse 和 Xcode!
  • TCPIP之常用协议