自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 【数字图像处理基础算法】

主要把图像处理的一部分经典基础算法梳理并实现了一遍,主要是用VS2013+OpenCV3.1.0做的。 主要目的:一是为了把基础巩固一下,以便更高效地看论文;二是为了工作基础。 因为以前在学习和研究的过程中发现自己基础不牢,缺乏对图像处理理论的系统认识。比如看论文时,遇到很多基础的小点都得去查...

2019-06-17 22:56:17

阅读数 938

评论数 0

原创 色彩转换系列之RGB格式与HSV格式互转原理及实现

写在前面 HSV是一种将RGB色彩空间中的点在倒圆锥体中的表示方法。HSV即色相(Hue)、饱和度(Saturation)、明度(Value),又称HSB(B即Brightness)。色相是色彩的基本属性,就是平常说的颜色的名称,如红色、黄色等。饱和度(S)是指色彩的纯度,越高色彩越纯,低则逐渐...

2019-06-17 17:56:26

阅读数 882

评论数 0

原创 色彩转换系列之RGB格式与HSI格式互转原理及实现

写在前面 HSI色彩空间是从人的视觉系统出发,直接用颜色三要素:色调(Hue)、饱和度(Saturation或Chroma)和亮度 (Intensity或Brightness)来描述色彩。 H——表示颜色的相位角,是彩色最重要的属性,决定颜色的本质。红、绿、蓝分别相隔120度;互补色分别相差1...

2019-06-17 17:01:16

阅读数 865

评论数 0

原创 色彩转换系列之RGB格式与YUV格式互转原理及实现

写在前面 首先介绍一下YUV颜色空间,YUV(亦称YCrCb)是被欧洲电视系统所采用的一种颜色编码方法。在现代彩色电视系统中,通常采用三管彩色摄像机或彩色CCD摄影机进行取像,然后把取得的彩色图像信号经分色、分别放大校正后得到RGB,再经过矩阵变换电路得到亮度信号Y和两个色差信号R-Y(即U)、...

2019-06-17 15:40:52

阅读数 441

评论数 0

原创 色彩转换系列之RGB图转灰度图原理及实现

写在前面 彩色图转灰度图在图像处理中应用非常非常广泛,而且很多算法只对灰度图有效,所以彩色图转灰度是十分重要和关键的。 RGB(红绿蓝)是依据人眼识别的颜色定义出的空间,可表示大部分颜色。但在科学研究一般不采用RGB颜色空间,因为它的细节难以进行数字化的调整。它将色调,亮度,饱和度三个量放在一...

2019-06-17 13:57:10

阅读数 720

评论数 0

原创 Laplacian算子-Log算子-Dog算子边缘检测原理合集及实现

写在前面 这里,我们将Laplacian算子-Log算子-Dog算子合在一篇博文写,为什么呢?因为这3个算子有非常大的关联性:Dog算子可以近似Log算子,而Log(Laplacian of gaussain)算子的基础是Laplacian算子。所以合在一起写更加方便,也更加能够突出这种关联性和...

2019-06-12 11:57:16

阅读数 1592

评论数 0

原创 Canny算子边缘检测原理及实现

写在前面 Canny边缘检是在在1986年提出来的,到今天已经30多年过去了,但Canny算法仍然是图像边缘检测算法中最经典、先进的算法之一。 相比Sobel、Prewitt等算子,Canny算法更为优异。Sobel、Prewitt等算子有如下缺点: 没有充分利用边缘的梯度方向。 最后得到...

2019-06-11 12:34:09

阅读数 7873

评论数 16

原创 Sobel算子边缘检测原理及实现

写在前面 Prewitt算子同样是一种一阶微分算子,它的卷积算子和Prewitt算子非常类似,仅仅是系数不同,但Sobel算子对于像素位置的影响做了加权,与Prewitt算子、Roberts算子相比效果更好。 优点 对边缘定位较为准确,能较好地处理灰度渐变和噪声较多的图像,计算简单,可分别计...

2019-06-10 22:33:27

阅读数 1275

评论数 0

原创 Prewitt算子边缘检测原理及实现

写在前面 Prewitt算子同样也是一种一阶微分算子,利用像素点上下左右邻点灰度差,在边缘处达到极值检测边缘,对噪声具有平滑的作用。 原理 其原理是在图像空间利用两个方向模板与图像进行邻域卷积来完成的,这两个方向模板一个检测水平边缘,一个检测垂直边缘。 相比Roberts算子,Prewit...

2019-06-10 18:22:36

阅读数 1863

评论数 0

原创 Roberts算子边缘检测原理及实现

写在前面 我们知道,进行边缘检测有两种方法:一阶导数的极值、二阶导数的过零点。 Robert算子是一种一阶微分算子,而且Robert算子是第一个边缘检测算子,提出者是Lawrence Roberts in 1963。 从这篇博客开始,会陆续介绍几种经典的边缘检测算子。先附上各种边缘检测算法的...

2019-06-10 17:31:41

阅读数 2417

评论数 0

原创 读研投小论文感想与总结(一)

首先要感谢这位博主:元气少女缘结神,她的这篇文章:读研期间小论文投稿-个人总结给了我很大的信心和帮助。我第一次看是读研一刚准备写论文的时候,那时很懵懂,很多期刊、选刊方法和投稿技巧都不懂,当时看了她的文章就觉得她很厉害,但没有仔细研究她写的方法;第二次看是我的文章经历了3次拒稿后,那时候几乎已经丧...

2019-05-29 10:36:31

阅读数 794

评论数 6

原创 形态学分水岭算法原理及示例实现

原理介绍 前面写了OTSU算法、最大熵算法、自适应阈值法、基于区域生长算法。他们都有各自的优缺点,而分水岭算法具有它们都具有的优势,所以通常能够产生更加稳健的分割效果。 分水岭算法(watershed)是一种比较基本的数学形态学分割算法,其基本思想是将灰度图像转换为梯度图像,将梯度值看作高低起...

2019-05-15 11:20:10

阅读数 705

评论数 0

原创 区域生长算法原理及实现

写在前面 前面写了OTSU算法、最大熵算法、自适应阈值法,这些都是基于阈值的分割算法。 今天写一下基于区域的分割算法,其中最为有名和经典的就是区域生长算法。值得说明的是:OpenCV没有提供区域生长算法的API。 优点:基本思想相对简单,通常能将具有相同特征的联通区域分割出来,并能提供很好的...

2019-05-14 22:20:05

阅读数 3108

评论数 0

原创 自适应阈值(adaptiveThreshold)分割原理及实现

背景介绍及原理 前面介绍了OTSU算法和最大熵算法,但这两种算法都属于全局阈值法,所以对于某些光照不均的图像,这种全局阈值分割的方法会显得苍白无力,如下图: 显然,这样的阈值处理结果不是我们想要的,那么就需要一种方法来应对这样的情况。 这种办法就是自适应阈值法(adapt...

2019-05-14 20:27:27

阅读数 5378

评论数 5

原创 最大熵阈值分割算法原理及实现

写在前面 前面介绍了OTSU算法,对于阈值分割法,不得不介绍另外一种较为突出的算法——最大熵阈值分割法(KSW熵算法)。 最大熵阈值分割法和OTSU算法类似,假设将图像分为背景和前景两个部分。熵代表信息量,图像信息量越大,熵就越大,最大熵算法就是找出一个最佳阈值使得背景与前景两个部分熵之和最大...

2019-05-14 19:39:48

阅读数 1628

评论数 9

原创 OTSU算法(大津法—最大类间方差法)原理及实现

写在前面 大津法(OTSU)是一种确定图像二值化分割阈值的算法,由日本学者大津于1979年提出。从大津法的原理上来讲,该方法又称作最大类间方差法,因为按照大津法求得的阈值进行图像二值化分割后,前景与背景图像的类间方差最大。 它被认为是图像分割中阈值选取的最佳算法,计算简单,不受图像亮度和对比度...

2019-05-13 22:26:12

阅读数 4439

评论数 2

转载 C语言不同数据类型间的混合运算转换规则+常见数据类型

在程序中经常会遇到不同类型的数据进行运算,若一个运算符两侧的数据类型不同,则先自动进行类型转换,使两者具有同一类型,然后进行运算,现将规律总结如下: 1. +. -. *. /运算的两个数中有一个数为float或double型,结果是double型,因为系统将所有float型数据都先转换为dou...

2019-05-04 15:56:51

阅读数 611

评论数 0

原创 引导滤波(GuidedFilter)原理及C++实现

写在前面 引导滤波是何恺明读博士的时候提出来的一种去噪保边算法,很有名。作者其主页上给出了该算法的Matlab实现和原文。而且他提出的基于暗通道去雾算法技惊四座,获CVPR2009最佳论文(膜拜),近几年在CV领域的成果也相当丰硕,关于他的研究动态,可以访问http://kaiminghe.co...

2019-05-02 19:49:26

阅读数 596

评论数 0

原创 双边滤波(bilateralfiter)原理及C++实现

写在前面 双边滤波是一种非线性滤波,能够达到去噪保边的效果。相比高斯滤波,双边滤波多了一种掩膜,也就是还考虑了灰度相似性,所以双边滤波是结合图像的空间邻近度和像素值相似度的一种折衷处理。 先看看对比效果:wsize=23*23, sigma(space)=10,sigma(color)=35 ...

2019-05-02 16:45:00

阅读数 745

评论数 0

原创 高斯滤波(GaussianFilter)原理及C++实现

写在前面 首先,搞清楚几个概念:滤波(高通、低通、带通、带阻) 、模糊、去噪、平滑,看下图: 滤波是对输入信号进行卷积处理的一个过程,写成一个表达式的形式是这样的:滤波 = 卷积( 输入信号 ,卷积模板 ), 卷积模板/掩膜 的不同决定了不同...

2019-05-02 12:17:18

阅读数 3150

评论数 0

原创 盒子(方框)滤波(BoxFilter)原理及C++及Matlab实现

写在前面 盒子滤波是一种非常有用的线性滤波,也叫方框滤波,最简单的均值滤波就是盒子滤波归一化的情况。 应用:可以说,一切需要求某个邻域内像素之和的场合,都有盒子滤波的用武之地,比如:均值滤波、引导滤波、计算Haar特征等等。 优势:就一个字:快!它可以使复杂度为O(MN)的求和,求方差等运算...

2019-05-01 21:40:59

阅读数 1712

评论数 2

原创 子块部分重叠直方图均衡算法(POSHE算法)MATLAB实现

写在前面 POSHE算法原理解读及c++代码实现请看:https://blog.csdn.net/weixin_40647819/article/details/88416512 这次用MATLAB实现。 代码 git 下载地址:https://github.com/220952057...

2019-04-27 16:51:17

阅读数 445

评论数 5

原创 中值滤波原理及c++实现

写在前面 中值滤波器是一种非线性滤波器,或者叫统计排序滤波器。 应用:中值滤波对脉冲噪声(如椒盐噪声)的抑制十分有用。 缺点:易造成图像的不连续性。 原理 原理很简单,如果一个信号是平缓变化的,那么某一点的输出值可以用这点的某个大小的邻域内的所有值的统计中值来代替。这个邻域在信号处理...

2019-03-24 18:06:15

阅读数 936

评论数 0

原创 积分图实现快速均值滤波

写在前面 在实际应用中,效率是不得不考虑的问题。上一篇博客介绍了均值滤波原理,这一篇就写用积分图实现的快速均值滤波吧。 还是贴一下常规与快速的效率对比吧: 下图是常规均值滤波处理一张分辨率为485*528图像的时间(模板15*15): 下图是积分图快速均值滤波处理的时间(模板15*15...

2019-03-24 14:24:52

阅读数 1152

评论数 2

原创 均值滤波原理及C++实现

写在前面 从均值滤波开始,着手实现各种常用的滤波算法。均值滤波是一种线性滤波。图像的空域滤波无非分为两种,线性滤波和非线性滤波。由于我之前对线性、非线性理解不够清晰,这次就好好总结一下吧。 线性滤波:对邻域中的像素的计算为线性运算时,如利用窗口函数进行平滑加权求和的运算,或者某种卷积运算,都可...

2019-03-24 11:55:46

阅读数 1684

评论数 0

原创 子块部分重叠直方图均衡算法(POSHE算法)原理解读及c++实现(二)

写在前面 接着上次的博客写,上次已经介绍完了POSHE部分,也为这次写BERF做了一些铺垫。在这次正式开始之前,还是先放两张图片,以说明执行BERF的必要性: 仅执行POSHE 执行BER...

2019-03-23 22:14:36

阅读数 182

评论数 0

原创 子块部分重叠直方图均衡算法(POSHE算法)原理解读及c++实现(一)

写在前面 Matlab版代码:https://blog.csdn.net/weixin_40647819/article/details/89603660 最近刚好写到了直方图均衡算法,因为之前用到过图像增强,就大致地再多了解了一下,看到了POSHE算法,这个算法也算是比较经典的吧,有一些它的...

2019-03-12 19:46:47

阅读数 1162

评论数 22

原创 直方图均衡化算法原理与c++实现

写在前面 直方图均衡是图像增强的基础算法,本质上是一种非线性拉伸,使图像的灰度级分布变得较为均匀,从而增强图像的对比度,使这些不够明显的图像细节清晰可见。掌握一种算法,必须要弄清楚它的优势和缺点,要知道它的适用场合,这样才能灵活的运用这些算法。 直方图均衡算法的优势:对于背景和前景都太亮或者太...

2019-03-12 09:33:49

阅读数 450

评论数 0

转载 Gamma校正原理及c++实现(查找表法)

写在前面 如果直接按公式编程的话,需要执行大量浮点数的乘法、除法和指数运算。效率太低,在应用时是肯定不行的。   针对上述情况,有人提出了一种快速算法,如果能够确知图像的像素取值范围, 例如, 0 ~ 255 之间的整数, 则图像中任何一个像素值只能 是0到255这256个整数中的某...

2019-02-28 14:38:25

阅读数 726

评论数 0

原创 图像灰度变换原理及c++实现——图像反转,对数变换,对比度拉伸,比特平面分层

写在前面 先交代下代码实现的技术细节吧。 1、在最后的代码里,图像反转,对数变换方法1,对比度拉伸,比特平面分层的实现均采用指针访问像素的方式,以前总是用Opencv的at模板,但是指针最为高效,我还是用一下指针吧。当然,还有迭代器访问的方式,也是最为安全的方式,以后试一下。访问元素的方式常用...

2019-02-28 11:02:29

阅读数 641

评论数 0

原创 图像的仿射变换原理及c++实现(旋转,平移,缩放,偏移,组合变换)

github地址:https://github.com/2209520576/Image-Processing-Algorithm 一.写在前面 几何空间变换是图像处理中的最基础的算法,主要包括图像的旋转,平移,缩放,偏移,组合变换等等,在冈萨雷斯的数字图像处理第三版的第二章就做了相关介绍,...

2019-02-25 11:44:23

阅读数 2160

评论数 2

原创 图像缩放中的插值算法——双线性插值原理及c++实现

github地址:https://github.com/2209520576/Image-Processing-Algorithm 首先感谢大牛博客:http://handspeaker.iteye.com/blog/1545126 https://www.cnb...

2019-01-22 21:18:47

阅读数 1004

评论数 0

原创 图像缩放中的插值算法——最近邻插值算法及c++实现

github地址:https://github.com/2209520576/Image-Processing-Algorithm 图像的缩放很好理解,就是图像的放大和缩小。传统的绘画工具中,有一种叫做“放大尺”的绘画工具,画家常用它来放大图画。当然,在计算机上,我们不再需要用放大尺去放大或缩小...

2019-01-22 20:18:03

阅读数 660

评论数 0

原创 剑指offe系列——替换空格

前言 刷题平台:牛客网 语言:C++ 题目描述 请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。 1、思路 最简单的方法就是从头到尾遍历,但是时间复杂度为O(n^2)。 ...

2020-02-24 15:02:38

阅读数 42

评论数 0

原创 剑指offe系列——二维数组中的查找

前言 刷题平台:牛客网 语言:C++ 题目描述 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 1、思路 首先选取数组中右上角的数字...

2020-02-24 14:44:21

阅读数 24

评论数 0

原创 2019年回顾及总结

地点

2020-02-05 17:18:02

阅读数 131

评论数 0

原创 图像传统方法——预处理解决椭圆物体边缘粘连问题

写在前面 再过2个小时,就是2020年了,回顾2019,有得也必有失,只感叹时间过得真的很快,像我这样的贫困人口也要被消灭了,哈哈。2019最后这2个小时就用一篇博客作为结尾吧。 昨天CSDN上一位同学说他们要做一个豆子识别的任务,但是豆子之间的粘连比较严重,如下图,不利于豆子的识别,问我有什...

2019-12-31 23:05:53

阅读数 76

评论数 4

转载 mwArray和cv::Mat互相转化函数

最近用C++/OpenCV调用MATLAB函数,有必要专门把这两个函数拿出来记录一下。 需要注意的是,Mat2mwArry函数的输入Mat类型是 CV_64FC1,灰度图。 如果要传递多通道图像的话,需要先cv::split()成多个灰度图像分别传给matlab。 mwArray2Mat...

2019-11-19 22:13:24

阅读数 70

评论数 0

转载 用Matlab画外接矩形——Regionprops函数详解:度量图像区域属性

Regionprops:用途是get the properties of region,即用来度量图像区域属性的函数。 语法:STATS = regionprops(L,properties) 描述:测量标注矩阵L中每一个标注区域的一系列属性。L中不同的正整数元素对应不同的区域,例如:L中等于...

2019-11-19 22:06:43

阅读数 62

评论数 0

转载 如何在C++程序(工程)中调用Matlab函数

C++调用Matlab主要有两种方式,一种是调用Matlab的计算引擎,即调用Matlab本身;另一种是调用matlab中由mcc编译生成的dll文件,这种方法是Matlab利用C++ Complier将m文件转化为C++源码,产生能够完全脱离Matlab运行环境独立执行的DLL程序,从而能够在C...

2019-11-19 21:57:27

阅读数 40

评论数 0

提示
确定要删除当前文章?
取消 删除