- 博客(6)
- 收藏
- 关注
原创 opencv,sobel求梯度,C++实现
开发环境 opencv版本:4.5.1 VS版本:VS2017 qt版本:qt5.12.3 Sobel求梯度 目的:为了获取图像的边缘. 原理:梯度简单来说就是求导. 求导公式: sobel算子:核(以3*3为例) 假设: 根据求导公式 ①、X方向的梯度: dx = ((-1)1+13)+((-2)4+26)+((-1)7+19) = 8 ②、y方向的梯度: dy = ((-1)1+17)+((-2)2+28)+((-1)3+19) = 24 ③、XY方向的梯度: 伪代码: X方向的梯度(仅支持核3
2021-04-29 17:01:34
1956
1
原创 C++实现,基于opencv的高斯滤波
开发环境 opencv版本:opencv4.5.1 VS版本:VS2017 Qt版本:Qt5.12.3 C++实现高斯滤波器 一、目的:去除噪声,使图像平滑。 二、原理 1.一维高斯分布: 2.二维高斯分布: 3、高斯滤波一般使用的二维零均值的高斯分布函数,通过高斯分布函数求出模板系数,例如一个3*3的模板:以模板的中心位置为坐标原点进行取样,其中模板各个坐标位置如下图,x轴水平向右,y轴垂直向下,(x,y)表示 4、将各个位置的坐标代入二维零均值高斯分布函数,计算出来的模板有两种形式: 整数模板和小
2021-04-29 16:50:22
2571
原创 基于OTSU(大津法)的图像分块的阈值分割
一、开发环境: Qt版本:Qt5.12.3 VS版本:VS2017 opencv版本:opencv-4.5.1-vc14_vc15 二、要求:实现基于图像分块+OTSU的图像分割 1.OTSU大津法实现 算法原理:OTSU的算法是假设存在阈值TH将所有图像分成两类C1,也叫前景(小于TH)和C2,也叫后景(大于TH),这两类的均值分别为m1和m2,整个图像的均值为mG。同时图像被分为C1类和C2类的概率分别为p1和p2。因此有: m1∗p1+m2∗p2=mG;① m1*p1+m2*p2 = mG;①
2021-04-28 11:19:24
2841
原创 基于opencv,C++实现中值滤波器
基于opencv,C++实现中值滤波器 目的:去除图像的椒盐噪声 原理:它将每一像素点的灰度值设置为该点某邻域窗口内的所有像素点灰度值的中值 伪代码: 输入:原图像、目标图像、核的半径 (1).判断原图像是否为空,空则直接返回 (2).判断核的半径是否为奇数 (3).原图像边界填充,目标图像清空 (4).中值滤波 新建一个半径*半径大小的二维数组 获取核大小的原图像的值,写入数组 数组进行排序 将中值写入目标图像 ...
2021-03-31 08:04:09
2433
原创 C++实现,基于opencv的均值滤波器
C++实现,基于opencv的均值滤波器 目的:用于图像去除图像的颗粒噪声,使图像平滑. 原理: 即以当前像素点为中心,求相邻的8领域和自身的值的和,以其平均值作为中心像素新的值。 数学公式 伪代码: 输入:原图像,输出图像,核的大小 (1).判断原图像是否为空,为空就直接返回 (2).判断卷积核是否为奇数 (3).准备一个新的对象来存放边界填充后的图像 (4).边界填充,并清空目标图像 (5).均值滤波处理 ①、三通道的处理 定义RGB三个通道的核的和以及平均数,并置0 求核的总和 求平均数 写入.
2021-03-30 14:58:41
1503
原创 window平台下qt creator如何正确打包发布可执行程序
window平台下qt creator如何正确打包可执行程序 #正确步骤如下: 第一步:选择项目 第二步:选择release模式 第三步:选择存放release的目录 第四步:运行 第五步:找到你刚刚选择的文件夹下的release,然后把带有.exe放在一个空的文件夹 第六步:找到你自己版本的qt自带的命令行工具 打开它,出现如下的界面 第七步:使用cd命令进入你存放.exe的目录 第八步:输入 windeployqt xxx.exe(其中xxx是你的文件名),然后敲下回车,就会出现下面
2021-02-04 16:30:17
477
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅