首页 > 编程语言 >GOCVHelper图像处理算法库实例整编

GOCVHelper图像处理算法库实例整编

时间:2022-12-25 11:34:32浏览次数:41  
标签:整编 GOCVHelper OpenCV 算法 图像处理 图像 轮廓 图像增强

    GOCVHelper主要包含图像处理、图像增强和基础文件处理三个部分。由于前两个部分较具有通用性,而且我在不同项目中都进行了反复使用,为了进一步说明类库内容,这里反过来从项目角度出发,对现有的类库进行整理;

    第三个部分,增加的是从OpenCV角度出发,哪些和处理增强相关的代码在实际项目过程中得到充分使用的。

一、轮廓处理

    边界是图像处理的重要部分,所以轮廓处理肯定是图像处理中的重要内容,这里的操作,主要是为了获得“量化”的结果。

(一)轮廓的筛选

1、FindBigestContour 以及 FindnthContour(寻找最大的轮廓和寻找第N大的轮廓)

  • 《寻找复杂背景下物体的轮廓(OpenCV / C++ - Filling holes)》
  • 《如何寻找第二大轮廓》

2、selectShapeArea 、selectShapeCircularity(根据轮廓的面积和圆度进行选择)

  • 《选择轮廓(select_shape)》
  • 《通过轮廓的圆度分析实现孔洞提取》

3、connection2(寻找并绘制出彩色联通区域)

  • 《如何判断轮廓是否为圆(包含联通区域处理)》
  • 《工业视觉检测项目的算法实现》 

(二)轮廓的处理

4、getOrientation(获得主要方向,在图上进行标绘)

  • 《如何获得物体的主要方向》
  • 《对OpenCV中“旋转”的思考和实验》

5、projection2(投影到x或Y轴上)

  • 《OpenCV图像处理中“投影技术”的使用》
  • 《识别复杂的答题卡1(主要算法)》

(三)杂项

7、SmoothEdgeSingleChannel(轮廓柔化)

  • 《AnswerOpenCV(0416)一周佳作欣赏》

 

二、图像增强

    这里所谓的“图像增强”,简单来说,输入和输出都是图像。增强可以作为下一步识别的输入,也可以直接作为结果存在。根据输入的图像是3通道彩色图像还是灰白图像进行简单区分.

(一)3通道彩色图像

1、multiScaleSharpen(多尺度图像增强)

  • 《多尺度的图像细节提升multiScaleSharpen实现方法》

2、moveLightDiff(顶帽去光差)

  • 《寻找复杂背景下物体的轮廓(OpenCV / C++ - Filling holes)》

3、translucence、mosaic(rect区域半透明和马赛克)

  • EasyPR https://gitee.com/liuruoze/EasyPR

4、GetHsVDistance(基于颜色直方图的距离计算)

  • 《花40分钟写一个-CBIR引擎-代码公开》

5、Multiply、Color_Burn、Linear_Burn(正片叠底、颜色加深、线性增强)

  • 《基于OpenCV实现Photoshop的17种图层混合》 
  • 《img = img1*mask + img2*(1-mask) How do that ?》

6、EnhanceSaturation(饱和度提升)

  • 《OpenCV实现"你的名字"滤镜》

(二)灰色图像增强

7、thin(细化算法)

  • 《将GOCVHelper推向opencv——关于thinning函数的探索》

8、ACE(图像局部对比度增强算法)

  • 《局部标准差实现对比度增强(ACE)》

9、LocalNormalization(LN算法)

  • 《LocalNormalization算法原理、实现和在视频处理中震铃效果的发现和去除》 

10、barcodeErode(条码专用腐蚀)

  • 《从条码识别中学习到的(来自课程《OpenCV计算机视觉产品实战2》)》

三、其它处理和增强代码

1、adaptiveThreshold 相对于一般的阈值化操作,当图像中出现较大明暗差距时,自适应阈值时非常有效的

2、fastNlMeansDenoising 对椒盐噪声中值滤波效果比较好,对高斯噪声非局部均值去噪效果比较好

3、equalizeHist 经典的全局直方图均衡,无需更多说明

4、CLAHE 经典的局部上下门限直方图处理,可惜OpenCV的实现好像差点意思

5、dft 傅里叶变换的最大价值在于将图像处理扩展到频率域,从而引入了很多新方法。

6、distanceTransform 《Finding distance between two curves》  代码富有弹性、函数应用合理

7、pointPolygonTest  《如何寻找已知轮廓的最大内接圆》

相关代码已经被OpenCV收录:/samples/cpp/tutorial_code/ShapeDescriptors/pointPolygonTest_demo.cpp

8、图像局部特征点检测算法综述   特征点提取在“目标识别、图像拼接、运动 跟踪、图像检索、自动定位”等研究中起着重要作用;我们这里通过一个综合实验来对OpenCV提供的特征提取方法进行比对。


标签:整编,GOCVHelper,OpenCV,算法,图像处理,图像,轮廓,图像增强
From: https://blog.51cto.com/jsxyhelu2017/5968021

相关文章