OpenCv学习
文章平均质量分 60
一枕春风不思君
这个作者很懒,什么都没留下…
展开
-
我的Clion的cmake配置
cmake_minimum_required(VERSION 3.17)project(untitled1)set(CMAKE_CXX_STANDARD 17)add_executable(untitled1 main.cpp)FIND_PACKAGE(OpenCV REQUIRED)IF (OpenCV_FOUND) INCLUDE_DIRECTORIES(${OpenCV_INCLUDE_DIRS}) TARGET_LINK_LIBRARIES(untitled1 ${原创 2023-12-13 17:52:11 · 528 阅读 · 0 评论 -
OpenCV学习笔记——线性变换
由于成像系统亮度有限,图像常常出现对比度不同的问题,使得人眼看图像时获得的视觉效果很差,通过变换法可以大大改善图像的视觉效果。由于OpenCv主要支持单通道和三通道的图像,并要求其深度为8为或者16位(即CV_16U),而其他数据类型是不支持的,比如float,则当我们的数据深度和通道数不满足上面的要求时可以使用convertTo函数(用于数据格式转换)或者cvtColor函数(图像颜色空间的转换)。创建新数据类型的副本:将一个矩阵或图像的数据类型更改为另一个数据类型的副本,并返回新的副本。原创 2023-10-06 17:23:27 · 1707 阅读 · 1 评论 -
OpenCV学习笔记——图像非线性变换(幂律、对数)
幂律变换又称伽马变换,和对数变换的原理差不多,只是参数多了一个,可变宽带的输入像素值范围可选,但是把低值带拉伸还是高值带拉伸取决于伽马的设定。对数变换可以拉伸范围较窄的低灰度值,同时压缩范围较宽的高灰度值,可以用来扩展图像中的暗像素值,同时压缩亮像素值。·当r1,把输入的窄带暗值映射到宽带输出亮值,提高图像中亮区域的对比度。·幂律变换通过幂次变换曲线中的r值把输入的窄带宽值映射到宽带输出值。原创 2023-10-06 16:29:31 · 1154 阅读 · 1 评论 -
OpenCV学习笔记——图像逻辑操作(与或非)
InputArray mask:模板的作用就是选择对应图像中对应像素的副本,在位置(x,y)时,如果mask的像素值不等于0,则dst(x,y)=src(x,y);如果mask的像素值等于0,则dst(x,y)=0。模板要与源图像具有相同大小,该参数一般不需要。OutputArray dst:输出图像。InputArry src:输入图像。原创 2023-10-04 11:54:43 · 200 阅读 · 1 评论 -
OpenCV学习笔记——卷积运算
1、卷积核的大小一般是奇数,这样子它才是和图像中心对称的。2、卷积核所有元素之和一般应该等于一。此处是为了维护图像的能量守恒(亮度)3、有时候我们的卷积核也可以不为一,如果大于一的话,那么图像会比原来更亮,如果小于一的话会比原来更暗。4、卷积后的图像结果可能会出现负数或者超出255的情况,这种时候我们直接截断就可以了,对于负数可以直接取绝对值。平滑,模糊,去噪,锐化,边缘提取其实都可以用卷积来实现。原创 2023-10-03 22:28:24 · 699 阅读 · 0 评论 -
数字图像处理学习笔记——大津法
大津法的详细讲解后面更新。原创 2023-10-01 00:14:25 · 80 阅读 · 0 评论 -
OpenCv学习笔记七——对像素点的读取与操作
i、j表示像素点在图像中的位置,而[c]表示通道编号,因为是三通道数据,所以[c]表示RGB通道(在OpenCv中图像通道为BGR,编号为0,1,2),而三通道float类型的矩阵可以使用。使用at()函数得到像素,Mat::at(i,j)为应该像素点的像素值数组,是一个大小为3的数组,值从0~2分别存放了B,G,R三个通道的灰度值。(这里默认使用的图像为Mat类型,RGB三通道的图像通道)::iterator it;中间cv::Vec3b是因为图像是彩色图像,3通道,cv::Vec3b可以代表一个像素。原创 2023-09-26 19:51:10 · 802 阅读 · 0 评论 -
OpenCv学习笔记六——图像通道的合并与分离
图像的通道是显示图像的基础。在自然界中,颜色本身容易受到光照的影响,RGB的图像像素值变化很大,而梯度信号能够提供更本质的信息。与此同时,我们通常还需要对分离处理后的几个通道进行合并处理,重新合并成一幅多通道的图片。Mat*mvbegin或者OutputArrayOfArrays mv:表示分离后图像的Mat数组首地址,或者OutputArrayOfArrays类型的mv,即一个vector对象。const Mat&类型的原图像src或者InputArray类型的m:表示待分离图像的多通道数组。原创 2023-09-24 19:57:04 · 503 阅读 · 1 评论 -
OpenCv学习笔记五——计算机交互
下面是使用鼠标绘制矩形的过程用鼠标绘制矩形。在这个例子中,鼠标左键被按下,记录起始点(矩形),当鼠标左键被释放后,在起始点和时放点之间绘制一个矩形,如果按下Esc键,则结束程序的运行。原创 2023-09-22 15:43:13 · 61 阅读 · 0 评论 -
OpenCv学习笔记四——颜色空间转换
该函数的作用是将图像从一个颜色空间转换到,另一个颜色空间。应该注意的是,从RGB颜色空间向其他颜色空间转换时。应注意的是,从RGB颜色空间向其他颜色空间转换时,必须明确指出图像的颜色通道。我们平时看到的彩色图像大多数都是RGB类型的,但是在图像处理时,需要用到灰度,二值,HSV,HSL等颜色空间(又称颜色模式)。int code:转换的代码或标识,即在此确定将说明模式的图像转换成什么模式的图像,,,,,,1、RGB和BGR(opencv默认的彩色图像的颜色空间是BGR)颜色空间的转换。原创 2023-09-22 11:10:47 · 349 阅读 · 3 评论 -
OpenCv(C++)学习笔记三——图像属性与基本图像绘制
该类型常用于传递像素值,也常用于表示BGR颜色值(3个参数)。如果不使用最后一个参数则无需定义它。当要定义一个颜色参数时,可以使用Scalar(a,b,c)来表示。例如,当要定义一个BGR颜色时,可以使得Blue=a、Green=b、Red=c。原创 2023-09-18 15:22:56 · 972 阅读 · 0 评论 -
OpenCv(C++)学习笔记二——视频的读取与输出
opencv视频基本操作原创 2023-09-18 11:45:17 · 4379 阅读 · 0 评论 -
OpenCv(C++)学习笔记——图像的读取与保存
OpenCv图像的保存和读取原创 2023-09-17 21:22:39 · 3889 阅读 · 2 评论