![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
opencv图像处理
Alaso_soso
这个作者很懒,什么都没留下…
展开
-
Python PIL.Image模块:图片变更尺寸大小(宽x高)
看到了一篇很好的PIL的Image的应用,转载。内容非常全,转载,看的时候方便。转载 2022-10-30 21:43:30 · 359 阅读 · 0 评论 -
Ubuntu配置OpenCV及多版本OpenCV共存
在开发不同工程时可能会需要不同版本的OpenCV,因此在电脑上安装多个版本的OpenCV很有必要。原创 2022-08-16 09:36:23 · 3024 阅读 · 2 评论 -
window10下面vs2022多个opencv共存的配置过程,以及问题解决。
问题记录,在使用vs的时候,opencv环境配置成功后,遇到问题解决方案。注意:我是在电脑上已经存在opencv4.5.5的情况下,继续配置其他版本的opencv。原创 2022-08-14 10:27:30 · 837 阅读 · 0 评论 -
跑orbslam2+yolov5的一些记录与总结
首先环境问题:我原来使用ubuntu18.04,跑的,可以跑通orbslam2但是在两者进行结合的时候,总是出现“段错误”,在网上也查了很多解决方案,也没有解决,最后我换成了ubuntu14.04,装了相应的安装包,最终解决了段错误(也不算真正的解决,只是偶尔出现一次,我也是百思不得其解)首先装pip,cmake,git等必要的包,安装这些包我参考的一些csdn链接如下:...原创 2022-05-25 14:31:10 · 4698 阅读 · 6 评论 -
Visual Studio 创建cmake项目——opencv环境配置
前言:哎,长期不用vs创建cmake项目,配置opencv都生疏了,记录一下前提:首先保证已经下载了opencv,我的opencv版本是4.5.5,并将其解压到你可以记住的文件夹中,如图我将opencv解压的目录为:E:\opencv,E盘的opencv文件夹中第一步:前提准备好之后,需要配置环境变量,我的电脑——》右键——》属性——》高级系统设置——》环境变量——》系统变量——》path在path中新建,配置opencv的环境(找到解压的路径):E:\opencv\o原创 2022-05-04 11:33:59 · 3052 阅读 · 0 评论 -
视频追踪(meanshift和camshift算法)
视频追踪(meanshift和camshift算法)原创 2022-03-21 11:08:55 · 4961 阅读 · 0 评论 -
Canny算法介绍:cv::Canny
步骤:Canny算法介绍-五步in CV::Canny1.高斯模糊- GaussianBlur2.灰度转换- cvtColor3.计算梯度- Sobel/Scharr4.非最大信号抑制5.高低阈值输出二值图像Canny算法介绍-高低阈值输出二值图像●T1, T2为阈值,凡是高于T2的都保留,凡是小于T1都丢弃,从高于T2的像素出发,凡是大于T1而且相互连接的,都保留。最终得到一一个输出二值图像。●推荐的高低阈值比值为T2: T1 = 3:1/2:1其中T2为高阈值,T1为低阈值原创 2021-11-08 20:22:40 · 2535 阅读 · 0 评论 -
Laplance算子(二阶导数)
理论:在二阶导数的时候,最大变化处的值为0,即边缘是零,通过二阶导数计算,依据此理论我们可以计算图像的二阶导数,提取边缘。Laplance算子二阶导数我不会,别担心->拉普拉斯算子(Laplanceoperator)Opencv已经提供了相关APl- cv::Laplance处理流程:高斯模糊-去噪声GaussianBlur()转换为灰度图像cvtColor()拉普拉斯-二阶导数计算Laplacian()取绝对值convertScaleAbs()显示结果代码原创 2021-11-08 19:18:21 · 3578 阅读 · 0 评论 -
Sobel算子实例
Sobel算子是离散微分算子(discrete differentiation operator ) ,用来计算图像灰度的近似梯度Soble算子功能集合高斯平滑和微分求导,又被称为一阶微分算子,求导算子,在水平和垂直两个方向上求导,得到图像x方法与y方向梯度图像#include<opencv2/opencv.hpp>#include<iostream>using namespace cv;int main(int argc, char** ar...原创 2021-11-05 20:07:29 · 3768 阅读 · 0 评论 -
边缘处理(边界处理)
卷积边界问题 图像卷积的时候边界像素,不能被卷积操作,原因在手边界像素没有完全跟kernel重叠,所以当3x3滤波时候有1个像素的边缘没有被处理,5x5皮的时候有2个像素的边缘没有被处理。处理边缘 在卷积开始之前增加边缘像素,填充的像素值为0或者RGB黑色,比如3x3在四周各填充1个像素的边缘,这样就确保图像的边缘被处理,在卷积处理之后再去掉这些边缘。opencv中默认的处理方法是:BORDER_DEFAULT,此外常用的还有如下几种:BORDER_CONSTANT-填充...原创 2021-11-03 12:44:44 · 1619 阅读 · 0 评论 -
15、自定义线性滤波
卷积可以对图像进行模糊,锐化,边沿查找等操作。常见的算子: 定义Robert算子,当然也可以定义sobel算子和拉普拉斯算子。利用filter2D函数实现自定义线性滤波。代码实现图像的逐渐模糊:#include<opencv2/opencv.hpp>#include<iostream>using namespace cv;int main(int argc, char** argv) { Mat dst; Mat s...原创 2021-10-30 21:40:10 · 149 阅读 · 0 评论 -
基本阈值操作
图像阈值( threshold )●阈值是什么 ?简单点说是把图像分割的标尺,这个标尺是根据什么产生的,阈值产生算法?阈值类型。( Binary segmentation )阈值类型--阈值二值化(threshold binary)阈值类型- -阈值反二值化(threshold binary Inverted)左下方的图表示图像像素点Src(x,x)值分布情况,蓝色水平线表示阈值阈值类型- -截断(truncate)左下方的图表示图像像素点Src(x,x)值分布情况,蓝色水平.原创 2021-10-29 12:57:58 · 344 阅读 · 0 评论 -
金字塔的上采样和下采样
图像金字塔概念我们在图像处理中常常会调整图像大小,最常见的就是放大(zoom in)和缩小( zoomout),尽管几何变换也可以实现图像放大和缩小,但是这里我们介绍图像金字塔 一个图像金字塔式一系列的图像组成,最底下一张是图像尺寸最大,最上方的图像尺寸最小,从空间上从上向下看就想一个古代的金字塔。图像金字塔概念高斯金子塔- 用来对图像进行降采样 拉普拉斯金字塔-用来重建一张图片根据它的 上层降采样图片图像金字塔概念-高斯金字塔高斯金子塔是从底向上,逐层降采样得到。 降采样之后图像大小原创 2021-10-29 11:09:47 · 1257 阅读 · 0 评论 -
形态学操作—提取水平与垂直线
原理方法图像形态学操作时候,可以通过自定义的结构元素实现结构元素对输入图像一些对象敏感、 另外些对象不敏感,这样就会让敏感的对象改变而不敏感的对象保留输出。通过使用两个最基本的形态学操作-膨胀与腐蚀,使用不同的结构元素实现对输入图像的操作、得到想要的结果。膨胀,输出的像素值是结构元素覆盖下输入图像的最大像素值腐蚀,输出的像素值是结构元素覆盖下输入图像的最小像素值结构元素●.上述膨胀与腐蚀过程可以使用任意的结构元素常见的形状:矩形、园、直线、磁盘形状、砖石形状等各种自定义形状。.原创 2021-10-28 18:39:58 · 218 阅读 · 0 评论 -
形态学操作(2)
开操作:open,先腐蚀后膨胀:morphologyEx(src,dst,CV_MOP_OPEN,kernel)可以去掉小的对象,假设对象是前景色,背景是黑色腐蚀去掉白色的小点点,膨胀是将原来的腐蚀掉的大块白色进行恢复相关API:morphologyEx(src,dst,CV_MOP_BLACKHAT,kernel);相关参数:输入图像,输出图像,形态学操作类型,Mat结构元素,迭代次数默认为1结构元素的定义Mat kernel=getStructuringElement(MORPH_原创 2021-10-28 17:08:50 · 98 阅读 · 0 评论 -
图像的腐蚀和膨胀
膨胀:用最大值像素值替换锚点的像素值。腐蚀:用最小值像素值替换锚点的像素值。相关API:getStructingElement(int shape,Size ksize,Point anchor)形状:MORPH_RECT\MORPH_CROSS\MORPH_ELLIPSE大小锚点:默认point(-1,-1),中心像素dilate(src,dst,kernel)膨胀 膨胀效果图erode(src,dst,kerne...原创 2021-10-27 19:07:59 · 973 阅读 · 0 评论 -
qtime定时器调用摄像头显示
QT+OpenCv 实时显示摄像头画面_zzzzjh的博客-CSDN博客_qt显示摄像头原创 2021-10-27 17:21:41 · 172 阅读 · 0 评论 -
中值滤波,双边滤波
中值滤波:从小到大排序,取中值作为中心点的像素值中值滤波对椒盐噪声有很好的抑制作用,双边滤波:(空域核,值域核) 均值滤波无法克服边缘像素信息的丢失,原因:基于平均权重 高斯模糊部分克服了该缺陷,但无法完全避免,原因:没有考虑像素值的不同 双边滤波防止了边缘信息的丢失,保持图像轮廓的不变相关的API:中值模糊:medianBlur(Mat src,Mat dst,Ksize)双边模糊:b...原创 2021-10-27 12:43:04 · 1373 阅读 · 0 评论 -
图像模糊:均值模糊和高斯模糊
均值模糊:卷积核的里面的值都为1,并且将相应的卷积核与图像进行卷积之后,需要除以长*宽的值,就是求平均值,作为卷积核对应图像中心点的像素值。均值模糊api:blur(Mat src,Mat dst,Size(xradius,yradius),Point(-1,-1));最后一个参数表示的是卷积核对一个图片的中心位置。高斯模糊:GaussianBlur(Mat src,Mat dst,Size(11,11),sigmax,sigmay)其中size(x,y),x和y必须是正数而且是奇数,原创 2021-10-27 11:20:05 · 560 阅读 · 0 评论 -
绘制形状与文字
cv::point与cv::Scalar划线:cv::line(LINE_4\LINE_8\LINE_AA)画椭圆:cv::ellipse画矩形:cv::rectangle画圆:cv::circle画填充:cv::fillPoly每个api相应的参数就不说了。随机数生成:cv::RNG生成高斯随机数:gaussian(double sigma)生成正太随机数:uniform(int a,int b)...原创 2021-10-27 11:03:45 · 41 阅读 · 0 评论 -
图片融合(addWighted)
Opencv的API为addWighted(src1,a,src2,1-a,0.0,dst)src1:图片1src2:图片2a:融合的权重dst:输出图像原创 2021-10-26 21:39:29 · 192 阅读 · 0 评论 -
详解向图像加入高斯白噪声
记录一下如何向图像中添加高斯白噪声。0均值高斯分布。详解向图像加入高斯白噪声_墨晓白的博客-CSDN博客_图片添加高斯白噪声原创 2021-09-03 14:39:48 · 1968 阅读 · 0 评论 -
图像梯度-Sobel算子
dst=cv2.Sobel(src,ddepth,dx,dy,ksize)ddepth:图像深度 dx和dy分别表示水平和竖直方向 ksize是Sobel算子的大小sobelx=cv2.Sobel(img,cv2.CV_64F,1,0,ksize=3)白到黑是正数,黑到白是负数,所有的负数会被截断成0,所以要取绝对值sobel算子演示:def cv_show(name,img): cv2.imshow(name,img) cv2.waitKey(0)...原创 2021-08-31 15:41:18 · 368 阅读 · 0 评论 -
图像平滑处理
均值滤波简单的平均卷积操作blur=cv2.blur(img,(3,3))方框滤波基本和均值一样,可以选择归一化,-1表示通道一致,归一化为true,和blur一样,如果为false,越界时,会取255box=cv2.boxFilter(img,-1,(3,3),normalize=True)高斯滤波(近的影响大,远的影响小)aussian=cv2.GaussianBlur(img,(5,5),1)中值滤波(将卷积内的值排序,取中值填充).原创 2021-08-31 12:28:48 · 122 阅读 · 0 评论 -
图像阈值处理
效果截图:原创 2021-08-31 11:23:35 · 57 阅读 · 0 评论 -
图像基本操作
#图像的显示,可以创建多个窗def cv_show(name,img): cv2.imshow(name,img) cv2.waitKey(0) cv2.destroyAllWindows()cv2.IMREAD_COLOR:彩色图像cv2.IMREAD_GRAYSCALE:灰度图像cv2.imread('图片路径',cv2.IMREAD_GRAYSCALE)#图像的保存cv2.imwrite('为保存的图片命名',保存的图形参数)数据读取视频:原创 2021-08-31 10:34:05 · 64 阅读 · 0 评论