OpenCV
文章平均质量分 59
yangSHU21
这个作者很懒,什么都没留下…
展开
-
(opencv)图像几何变换——仿射变换
图像的仿射变换是指在空间直角坐标系中将一个二维坐标转换到另外一个二维坐标,仿射变换是一种线性变换,可以表示为线性变换(矩阵相乘)与平移过程。使用opencv进行仿射变换时,会先计算出一个仿射变换矩阵,getRotationMatrix2D函数首先将角度转换为了弧度,然后计算旋转矩阵。通过它计算得到二维旋转的仿射变换矩阵后,就可以通过warpAffine函数对源图像进行仿射变换。结果如下:图2是点仿射变换、图3是角仿射变换(但是丢失了一部分信息)图像仿射变换可以应用在大部分几何变换操作中。原创 2023-06-12 16:49:44 · 967 阅读 · 0 评论 -
利用opencv怎样旋转一幅图像
在进行图像旋转的过程中,图像以旋转中心为坐标原点,最终完成旋转还需要将坐标原点移动到图像的左上角。旋转后图像的尺寸可以由图像极值点确定,设旋转后图像的最左边点的横坐标为lxmin,最右边的横坐标为lxmax,最高点的纵坐标为lymin,最低点的纵坐标为lymax.而旋转时一般使用的是常见的笛卡尔坐标系,向右为X正方向,向上为Y正方向。第一步先解释坐标系转换的过程。图像旋转后图像的水平对称轴、垂直对称轴以及中心坐标原点可能都会发生变换,因此需要对图像旋转中的坐标进行相应的转换。第二步解释旋转的过程。原创 2023-06-11 14:04:18 · 2327 阅读 · 1 评论 -
(opencv)图像几何变换——缩放
等间隔提取图像缩放是通过对源图像进行均匀采样来完成的。对于源图像数据f(x,y),其分辨率为M*N,如果将其分辨率改变成m*n,对于等间隔采样而言,其宽度缩放因子k1=m/M,高度缩放因子k2=n/N,对于图像而言,图像缩放在其水平方向的等间隔采样为k1,垂直方向上的等间隔采样为k2。若满足k1=k2,源图像数据将等比例缩放,否则源图像数据的宽度和高度将发生不同程度的缩放,造成图像变形扭曲现象。区域子块提取图像缩放是通过对源图像进行区域子块划分,然后提取子块中像素值作为采样像素以构成新图像来实现的。原创 2023-06-10 15:03:25 · 3827 阅读 · 2 评论 -
(opencv)图像几何变换——平移
图像的平移操作是将图像的所有像素坐标进行水平或垂直方向移动,也就是将所有像素点按照给定的偏移量在水平方向沿x轴、垂直方向上沿y轴移动。(不知道vector容器含义的同学可以这样理解vector,它就是一个数组,只不过这个数组的大小可以随时改变,故称vector为动态数组)由于在opencv中读取到的Mat图像数据都是用uchar类型的数据存储,对于RGB三通道的图像,每个点的数据都是一个vec3b类型的数据。result图像(i,j)处的像素值等于src图像第y行,第x个坐标的像素值。原创 2023-06-10 13:12:10 · 2299 阅读 · 0 评论 -
(opencv)图像几何变换——坐标映射
图像的几何变换是指在不改变图像像素值的前提下对图像像素及逆行空间集合变换,常见的几何变换有距离变换、坐标映射、平移、镜像、旋转、缩放、仿射变换等。原创 2023-06-10 11:06:56 · 648 阅读 · 0 评论 -
opencv播放视频
视频播放的画面暂时不能插入进来,单独放在另外一个链接里面。(视频里的代码和本文的代码有部分差别)利用opencv播放本地视频的一段代码。原创 2023-04-13 18:39:24 · 643 阅读 · 0 评论 -
OpenCV基础类型Point类、Scalar类、Size类、Rect类
Point可以成为任何类型的点,如浮点型、整型等。Point类的巨大优势在于原生上并没有对它们定义很多操作,但它们可以转换成更广义的类型,在实际程序中使用时,Point类是通过类似于cv::Point2i和cv::Point3f这类别名来实例化的,这些别名的最后一个字母表示构造该点所需要的原语。直接受Point类支持的操作。原创 2023-04-15 21:00:17 · 806 阅读 · 0 评论 -
opencv C++ 读取并显示一张图片
但是由于是新手,对其他头文件暂时不了解,就直接使用了#include ,包含这个头文件之后,运行程序会加载所有模块,程序运行的时间较长。Mat类用来保存矩阵信息的数据类型,上述代码首先创建了一个名为src的Mat类,并使用imread()函数读入一张图像保存在src中,代码中双引号引起来的是图片的绝对路径和名称,注意一定要把原先的单斜杠“\"换成双斜杠”\\",否则程序会报错。第二个参数表示加载图像的类型,默认为1,表示原图。第二个参数表示窗口的标识,默认为。原创 2023-04-12 21:49:31 · 1675 阅读 · 0 评论 -
opencv学习——imread()读取图像
filename 图片路径编译器里面接受 单斜杆/, 双斜杆//, 以及反向双斜杆 \\。IMREAD_COLOR = 1,表示以RGB方式读取原图。原创 2023-04-13 07:00:36 · 1286 阅读 · 3 评论 -
利用OpenCV把一幅彩色图像转换成灰度图
用Mat存储一幅图像时,若图像在内存中是连续存储的(Mat对象的isContinuous == true),则可以将图像的数据看成是一个一维数组,而其data(uchar*)成员就是指向图像数据的第一个字节的,因此可以用data指针访问图像的数据。彩色图像中的每个像素颜色由R、G、B三个分量来决定,而每个分量的取值范围都在0-255之间,这样对计算机来说,彩色图像的一个像素点就会有256*256*256=16777216种颜色的变化范围!如果想要遍历其中的元素,可以使用指针的遍历方法。原创 2023-04-19 11:39:26 · 6083 阅读 · 0 评论 -
OpenCV Mat类基本操作
cv::Mat上面列举了Mat的基本构造函数,主要分为几个类型:要求输入行数和列数来构造一个二维数组的、使用cv::Size对象来构造一个二维数组的、原创 2023-04-16 15:25:14 · 937 阅读 · 0 评论