关于opencv库一部分的介绍

关于opencv库的介绍

1.openCV中我们一般使用Mat类,来存储我们所输入的图片,mat作为一个C++语言独有的类(具备C语言中的结构体,并且同时拥有对自身结构体操作的函数),使用方法十分多。

2.首先明确存储的图像不管是彩色的还是灰度图像,都是二维的矩阵,具体的存储格式如下

如果是灰度图(它并不是深度图):

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HxBTinjM-1582597096289)(C:\Users\admin\Desktop\70)]

它是这个样子的(显然是一个二维矩阵,行列清晰的记录了每个像素点的信息)

而彩色图:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gdok2zSm-1582597096291)(C:\Users\admin\Desktop\20160829204514708)]

虽然看起来有点晕,但实际上它还是一个二维矩阵,我们可以把三原色组成的三列看作一列,从而变成[(BGR),(BGR),…],这样看起来是不是就好看很多了。

看到了吗,虽然彩色图像由BGR(RGB,RGBA各种排列形式)三个通道,但是是存储在同一个平面内的,只不过OpenCV在这里把三列才当作一列,在代码操作中img.cols代表图像所转存的二维矩阵的列数。

一般我们用Opencv读取的灰度图像的数据类型为uchar(unsigned char的简写)类型的,而彩色图像的一个像素的数据类型为类型的,灰度图一个像素占用1个字节,而彩色图像一个像素3个字节。

二,这里同时介绍一些关于编程小技巧,众所周知,相对C语言,C++作为他的扩充,拥有了许多强大的处理数据,或者各种实用的库,但他们由于大多都是其他开发者自行创造,并不被C++自己包括,大多需要我们自行下载,所以许多时候我们为了应用某个库的函数通常需要这样(库名称)::(库函数),这个有时候是真的烦(自己打的烦),但其实OpenCV是可以成为命名区间的,从而节省我们的时间(然而这回导致程序可读性变差)

三。cv::Mat img;

​ img.at(i, j) = i+j;可以使用上述语句对图像进行操作。

大致格式::at<类型>(i,j)进行操作

​ resize(img, img, Size(375, 500)) 调整图片格式操作

​ img.cols 图像矩阵的列数,img.rows 图像矩阵的行数

​ if(img.isContinuous()) 判断图像存储是否在内存中连续

                                                      //Rect四个形参分别是:x坐标,y坐标,长,高;注意(x,y)指的是矩形的左上角点

void main()

{

Mat img = imread("1.jpg");

Mat roi = img(Rect(500, 200, 100, 300));

... ...

}

这个是用来定义一个图像的一个区域(说明这是我们感兴趣的一个地方成为roi区域,CV::rect)本身是一个矩形类。 参考博客:https://www.cnblogs.com/skyfsm/p/6892746.html

在图像处理领域,有一个非常重要的名词ROI。

什么是ROI?它的英文全称是Region Of Interest,对应的中文解释就是感兴趣区域。感兴趣区域,就是我们从图像中选择一个图像区域,这个区域就是图像分析所关注的焦点。我们圈定这个区域,那么我们要处理的图像就从大图像变为一个小图像区域了,这样以便进行进一步处理,可以大大减小处理时间。定义ROI区域有两种方法:

  1. Mat roi = img(Rect(500, 200, 100, 300));//Rect四个形参分别是:x坐标,y坐标,长,高;注意(x,y)指的是矩形的左上角点
  2. ​ Mat roi = img(Range(250, 250 + 100), Range(200, 200 + 100));//Range两个形参分别是:起始行或列,起始行或列+偏移量

结语

接下来估计接触PCL,CERES,G2O等库的使用,而关于文件处理库,还有Eigen库,估计要以后了,最近开学上课,实在没想到会忙成这样,很多计划估计都要往后推迟了,毕竟自己本身学业为重,这是毋庸置疑的。

·

以后了,最近开学上课,实在没想到会忙成这样,很多计划估计都要往后推迟了,毕竟自己本身学业为重,这是毋庸置疑的。

·

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值