
图像基础
文章平均质量分 93
飓风神龙
这个作者很懒,什么都没留下…
展开
-
OpenCV学习 基础图像操作(十七):泛洪与分水岭算法
泛洪填充算法和分水岭算法是图像处理中的两种重要算法,主要用于区域分割,但它们的原理和应用场景有所不同,但是他们的基础思想都是基于区域迭代实现的区域之间的划分。原创 2024-06-01 21:17:41 · 1173 阅读 · 0 评论 -
OpenCV学习 基础图像操作(十六):图像距离变换
距离变换(Distance Transforms)是计算机视觉和图像处理中的一种重要工具。其基本思想是将每个像素的值变换为其到最近的某一特定点集(如二值图像中的“on”像素)的距离。以下是关于距离变换的一般算法流程和相关公式。原创 2024-06-01 16:32:22 · 1696 阅读 · 0 评论 -
OpenCV学习 基础图像操作(十二):霍夫变换
霍夫变换极坐标直线检测流程步骤:将空域坐标中的点通过极坐标转换到极坐标空间(霍夫空间)上 在霍夫空间中相交的点所代表的直线,即为这些点所在的直线 再使用极坐标将这些霍夫在霍夫空间中投票选好的点逆变换回直角坐标中的直线圆检测API简介代码与实践...原创 2020-07-20 00:13:40 · 251 阅读 · 0 评论 -
OpenCV学习 基础图像操作(十一):Canny边缘检测
原文链接:http://www.cse.iitd.ac.in/~pkalra/csl783/canny1986.pdf简介经典的Canny边缘检测算法通常都是从高斯模糊开始,到基于双阈值实现边缘连接结束。但是在实际工程应用中,考虑到输入图像都是彩色图像,最终边缘连接之后的图像要二值化输出显示,所以完整的Canny边缘检测算法实现步骤如下:1. 彩色图像转换为灰度图像 2. 对图像进行高斯模糊 3. 计算图像梯度,根据梯度计算图像边缘幅值与角度 4. ...原创 2020-07-16 11:44:32 · 741 阅读 · 0 评论 -
OpenCV学习 基础图像操作(十):卷积与卷积算子
卷积卷积定义简单来说就是一个kernel在图像上进行加权求和,用公式可表示为卷积核的锚点指的是这个卷积核更新输出的点,一般为卷积核的中心点;卷积的步长为卷积核在图片上移动一次的距离。卷积边界问题当卷积核移动到图像相边界时,卷积核会有部分位置超出原图的边界,此时无法进行运算,需要将原图像的边界扩充后才能运算。扩充方式BORDER_DEFAULT:用已知边缘镜像填充BORDER_CONSTANTP:用指定像素填充边缘BORDER_REPLICATE:用最边缘的像素填充原创 2020-07-14 23:48:21 · 1955 阅读 · 0 评论 -
OpenCV学习 基础图像操作(九):阈值操作
阈值类型二值化反二值化截断阈值取零阈值反取零原创 2020-07-12 18:54:19 · 385 阅读 · 0 评论 -
OpenCV学习 基础图像操作(八):图像上采样和降采样
上采样与降采样上采样降采样图像金字塔在图像处理中常常会调整图像大小,最常见的是放大(zoom in)和缩小(zoom out),一个图像金字塔是一系列的图像组成,最底下的尺寸最大,最上方的尺寸最小,从空间上看就像一个金字塔。高斯金字塔高斯金字塔是从底向上,逐层降采样得到的。 降采样之后图像大小由MxN变为M/2xN/2,就是队员图像删除偶数的行与列,即获得上一层的图片。 高斯金字塔的生成过程分为两步: 对当前层进行高斯模糊 删除当前层的偶数行与列 高斯不同(DOG)原创 2020-07-10 17:44:42 · 718 阅读 · 0 评论 -
OpenCV学习 基础图像操作(七):水平与水直线条提取、验证码去背景
PS:本篇通过两个小的案例,来示范下形态学操作在图像处理过程中的应用。提取一副图片中的水平线和水直线AIP介绍自适应阈值分割void adaptiveThreshold(InputArray src, OutputArray dst, double maxValue, int adaptiveMethod, int thresholdType, int bolckSize, doubl原创 2020-07-02 23:59:51 · 1217 阅读 · 0 评论 -
OpenCV学习:基础图像操作 (六):形态学操作
基础概念腐蚀膨胀开运算闭运算顶毛算法黑帽算法API简介代码实践原创 2020-07-01 21:36:24 · 673 阅读 · 0 评论 -
OpenCV学习 基础图像操作 (五):Smooth和Blur
常用滤波器均值滤波均值滤波也称为线性滤波,其采用的主要方法为邻域平均法。线性滤波的基本原理是用均值代替原图像中的各个像素值,即对待处理的当前像素点(x,y),选择一个模板,该模板由其近邻的若干像素组成,求模板中所有像素的均值,再把该均值赋予当前像素点(x,y),可用下面公式表示:特点:均值滤波本身存在着固有的缺陷,即它不能很好地保护图像细节,在图像去噪的同时也破坏了图像的细节部分,从而使图像变得模糊,不能很好地去除噪声点。中值滤波中值滤波是基于排序统计理论的一种能有效抑制噪声的非线性原创 2020-06-27 15:26:49 · 1772 阅读 · 1 评论 -
OpenCV学习:基础图像操作 (四):绘制几何图形
API简介//基础数据结构//点Point p1=Point(100,100)Point p2; p2.x = 200; p2.y = 300;//矩阵Rect rect = Rect(200,100,300,300);//起点x,y,长300,宽300//颜色向量Scalar color = Scalar(0,0,255);//画线line(bgImage,p1,p2,color,1,LINE_8);//背景图片,起点,终点,颜色向量,线条粗细,线条类型//线条类型:L原创 2020-06-27 10:45:17 · 491 阅读 · 0 评论 -
OpenCV学习:基础图像操作 (三):对比度与亮度调整,图片融合
图片对比度与亮度在图像像素公式g(x)=a*f(x)+b其中:参数f(x)表示源图像像素。 参数g(x) 表示输出图像像素。 参数a(需要满足a>0)被称为增益(gain),常常被用来控制图像的对比度。 参数b通常被称为偏置(bias),常常被用来控制图像的亮度。图片融合意义:将多张图片中的信息关联起来,使得单张图片包含更多的信息元素,方便后续地控制处理。方法:基于深度学习:使用GAN网络生成,使用编解码网络生成,使用特征图融合技术等 基于图像处理:像素...原创 2020-06-26 08:50:32 · 913 阅读 · 0 评论 -
OpenCV学习:基础图像操作 (二):Mat对象的使用
Mat对象构造函数与复制//构造函数Mat()Mat(int rows,int cols, int type) // rows 行数Mat(Size size,int type) // cols 列数Mat(int rows,int cols,const Scalar &s) // Size 图片大小(x,y)Mat(int ndims, const int *sizes, int type) // ndim原创 2020-06-25 01:30:37 · 697 阅读 · 0 评论 -
OpenCV学习:基础图像操作 (一):打开、显示、保存图像,用像素指针访问图像像素
1.打开图像#include <opencv2/opencv.hpp>#include <iostream>using namespace cv;int main(int argc, char** argv){ //打开图片 Mat src = imread("1.jpg"); //判断图片是否成功打开 if(src.empty()) { printf("打开图片不存在!"); retur原创 2020-06-24 00:17:44 · 588 阅读 · 0 评论