OpenCV/python
文章平均质量分 57
计算机视觉相关的知识-- 数字图像处理集合--快速演示算法
SongpingWang
计算机视觉相关--程序语言相关
展开
-
OpenCV—Python 轮廓 (contour) 与 凸包 (convex Hull)
查找图像的四边形的顶点。原创 2024-07-15 15:57:04 · 178 阅读 · 0 评论 -
OpenCV—python 基于反向投影的显著性检测
我们在获取显著性检测时,我们希望进行无监督提取或者分割目标。深度学习在目标检测与显著性检测方面已经是非常成熟了,但是算法复杂度相对于传统无监督的算法来说还是高了点,这里只是写个示例。仅供参考。其中:关于均值漂移 cv2.pyrMeanShiftFiltering 算法详解 【请点击】关于cv2.grabcut 详情【请点击】关于均值漂移&Grabcut分割示例 【请点击】import cv2import numpy as npimport matplotlib.pyplot as pl原创 2021-06-24 11:17:55 · 561 阅读 · 0 评论 -
Python 离散小波变换(DWT) pywt库
文章目录一、小波变换离散小波变换函数二、Haar 变换2.1 一维Haar变换2.2 二维离散小波变换三、代码演示简便安装:pip install PyWavelets 或者 conda install PyWavelets源码安装:下载源码tar zxvf PyWavelets-1.1.1.tar.gz PyWavelets-1.1.1cd PyWavelets-1.1.1sudo python3 setup.py buildsudo python3 setup.py install使用文原创 2021-05-14 11:24:41 · 60279 阅读 · 4 评论 -
OpenCV—python 图像积分图
文章目录积分图原理效果演示积分图原理关于积分图原理:https://www.cnblogs.com/magic-428/p/9149868.html第一个提出 Haar 特征快速计算方法的是 CVPR2001上 的那篇经典论文 [《Rapid object detection using a boosted cascade of simple features》] (http://www.cs.utexas.edu/~grauman/courses/spring2007/395T/papers/vio原创 2021-03-06 15:52:04 · 1432 阅读 · 0 评论 -
OpenCV—python 连通域标记
文章目录连通域4-邻域连通域标记8-邻域连通域标记连通域图像的连通域是指图像中具有相同像素值并且位置相邻的像素组成的区域,连通域分析是指在图像中寻找出彼此互相独立的连通域并将其标记出来。提取图像中不同的连通域是图像处理中较为常用的方法,在目标检测等领域对感兴趣区域分割与识别。一般情况下,一个连通域内只包含一个像素值,因此为了防止像素值波动对提取不同连通域的影响,连通域分析常处理的是二值化后的图像。在了解图像连通域分析方法之前,首先需要了解图像邻域的概念。图像中两个像素相邻有两种定义方式,分别是4-邻域原创 2020-12-20 10:12:27 · 14304 阅读 · 13 评论 -
OpenCV—python Max-Mix filter 最大-最小滤波器
文章目录一、Max-Min Filter 算法原理二、代码实现:一、Max-Min Filter 算法原理图像的细节属于低频信息,图像的边缘属于高频信息。我们使用一定大小的 Max-Min 滤波器作用于图像,当滤波器作用于图像细节时,输出结果往往趋向于0(黑色);而滤波器作用于图像边缘时,Max-Min 输出结果往往趋向于255(白色)。所以 最大-最小滤波器 能有效地用于检测图像的边缘和轮廓。MAX-MIN滤波器使用网格内像素的最大值和最小值的差值对网格内像素重新赋值。通常用于边缘检测。边缘检测用原创 2020-12-16 20:22:27 · 3488 阅读 · 0 评论 -
OpenCV—python 阴影提取
文章目录一、前言二、代码实现二、算法改进一、前言本文探讨图像阴影部分提取,借鉴【博主】思想,处理图像:图像处理都是光照条件比较好的,所以阴影部分的亮度就会比其他区域的亮度明显低不少;另外,由于亮度的降低,导致其色调比较浅,所以R、G、B三个通道数值的方差肯定比较小。通过调节阈值,实现比较好提取效果。【会议文章】:http://cvrr.ucsd.edu/aton/shadow/二、代码实现我这里只是展示算法效果,并未进行形态学处理,ROI筛选以及上色。通过阴影区域提取可进一步实现阴影去除。i原创 2020-08-23 10:39:24 · 3433 阅读 · 2 评论 -
OpenCV—python 字符分割
本博客主要探讨基于传统方法的验证码识别,更多的是做粘连扭曲的验证码识别的分割,其实在验证码识别这一块,深度学习做的已经非常好了,识别效率与速度都是不错的。【验证码识别】连通域:https://blog.csdn.net/fox64194167/article/details/80557242http://www.hi-roy.com/2017/09/20/Python%E9%AA%8C%E8%AF%81%E7%A0%81%E8%AF%86%E5%88%AB2/泛红填充:http://www.voidc原创 2020-07-25 19:27:46 · 2416 阅读 · 0 评论 -
OpenCV—python 图片细化(骨架提取)二
文章目录一、骨架提取函数 skeletonize()一、骨架提取函数 medial_axis()一、骨架提取函数 skeletonize()骨架提取,也叫二值图像细化。这种算法能将一个连通区域细化成一个像素的宽度,用于特征提取和目标拓扑表示。骨架提取与分水岭算法也属于形态学处理范畴,都放在morphology子模块内。morphology子模块提供了两个函数用于骨架提取,分别是Skeletonize()函数和medial_axis()函数。在模块:skimage.morphology.skeleto原创 2020-07-14 19:29:06 · 23534 阅读 · 10 评论 -
OpenCV—python 自适应对比度增强(ACE)
文章目录在图像处理的方法中,自适应方法是与图像本身信息相关,根据图像对图特征对图像进行处理的一系列方法,这些方法往往具有更好的鲁棒性、普适性。而本文中提到的这种ACE方法由NarendraPM Narendra P MNarendraPM等人在《Real-Time Adaptive Contrast Enhancement》 提到。对于图像中的每一个点,分别计算其局部均值与局部标准差;M(i,j)=1(2n+1)(2m+1)∑s=i−ni+n∑k=j−mj+mf(s,k)M(i,j) = \frac{转载 2020-08-19 19:57:13 · 6177 阅读 · 8 评论 -
图像分割—GrabCut算法
Grabcut是基于图割(graph cut)实现的图像分割算法,它需要用户输入一个bounding box作为分割目标位置,实现对目标与背景的分离/分割,这个跟KMeans与MeanShift等图像分割方法有很大的不同,但是Grabcut分割速度快,效果好,支持交互操作,因此在很多APP图像分割/背景虚化的软件中可以看到其身影。该算法主要基于以下知识:k均值聚类高斯混合模型建模(GMM)...原创 2020-01-23 17:06:39 · 24417 阅读 · 2 评论 -
基于区域的对比度方法的显著区域检测—RC
基于区域的对比度方法python代码:【原文请点击】基于区域对比度分析的显著性检测通过定义每个区域与其他区域的相似度权重得到区域显著性值,完成显著性检测。RC做法需要首先生成区域,通过基于图的图像分割得到很多图像区域,对一个区域计算显著性值。算法流程:图片RGB转Lab颜色空间高斯模糊基于图的图像分割,形成分割区域【代码点击】量化颜色值,减少计算量【代码点击】创建区域并形成区域对...原创 2019-12-27 21:35:04 · 4770 阅读 · 0 评论 -
OpenCV—python 显着性检测二
这里只是展示一下OpenCV自带的显着性检测函数。效果都不是很好,各位可以测试一下。运动显着性OpenCV显着性检测器来自Wang和Dudek的2014年出版的一种快速自调整背景扣除算法。https://ieeexplore.ieee.org/document/6910012/from imutils.video import VideoStreamimport imutilsimpo...原创 2019-11-23 10:17:49 · 2937 阅读 · 0 评论 -
Cython—图片细化(骨架提取)优化代码
import cv2import numpy as npimport timefrom scipy.signal import correlate2ddef Three_sum_element(array): array1 = np.pad(array.copy(),((0,0),(0,1)),'constant')[:,1:] array2 = np.pad(arr...原创 2019-11-14 10:54:15 · 957 阅读 · 0 评论 -
OpenCV—python 图像拼接(FLANN匹配应用)
关于透视变换 cv2.warpPerspective 详情请查看:https://blog.csdn.net/dcrmg/article/details/80273818https://blog.csdn.net/qq_27261889/article/details/80720359关于FLANN匹配 详情请查看:https://blog.csdn.net/wsp_1138886114/a...原创 2019-09-17 16:51:17 · 2034 阅读 · 1 评论 -
OpenCV—Python 图像预处理工具(重命名,格式转化,大小改变)
图像重命名import osclass BatchRename(): """ 批量重命名文件夹中的图片文件 """ def __init__(self,path): self.path = path def rename原创 2019-03-08 11:06:23 · 1406 阅读 · 0 评论 -
OpenCV—Python 对比度与亮度调整
# 列出文件夹内所有代码def list_dictionary_codes(root_dir): paths_list = [] for parent, dirNames, fileNames in os.walk(root_dir): for name in fileNames: ext = ['.h', '.m', '.xib', '....原创 2018-09-17 20:26:45 · 32463 阅读 · 11 评论 -
OpenCV—python 颜色量化—(255*255*255 颜色量化转成 12*12*12)
颜色量化这里的颜色量化主要是用于显著性检测。将255*255*255=16581375 颜色量化转成 12*12*12=1728。以此来减少计算量。若是查看显著性检测代码,请点击查看原博客:https://blog.csdn.net/wsp_1138886114/article/details/102560328。整个流程:首先统计图像的颜色直方图然后设置删除最大元素阈值:通过选择高频颜...原创 2019-11-03 12:06:47 · 5873 阅读 · 0 评论 -
OpenCV—python 图像显著性检测算法—鲁棒背景检测
文章目录一、鲁棒背景检测的显著性优化二、代码演示一、鲁棒背景检测的显著性优化Saliency Optimization from Robust Background Detection摘要1.首先,我们提出一种鲁棒性的方法叫做背景相关性。它根据图像的边界来表征图像区域的空间布局,具有很强的鲁棒性。它有一个直观的几何解释,并提出独特的优势,这是以前的显着性方法所缺乏的。2.我们提出一种优...原创 2019-12-13 12:39:37 · 3275 阅读 · 0 评论 -
OpenCV—python 图像显著性检测算法—HC/RC/LC/FT
文章目录一、显著性检测研究现状二、基于谱残差法的显著性检测三、基于全局对比度图像显著性检测(LC)2.1 基于直方图对比度的显著性检测(HC)2.2 基于区域的对比度方法(region-based contrast 简称RC)四、基于深度学习的显著性检测一、显著性检测研究现状建立计算模型进行显著性检测。思想是:对输入图像首先进行多个特征通道和多尺度分解,再进行滤波得到特征图,再对特征图...原创 2019-10-24 09:12:25 · 24612 阅读 · 24 评论 -
OpenCV—python 视频分析背景提取与前景提取
文章目录一、算法二、代码OpenCV中支持的两种背景提取算法都是基于模型密度评估,然后在像素级对图像进行前景与背景分类的方法,它们具有相同的假设前提 – 各个像素之间是没有相关性的,跟它们算法思想不同的方法主要是基于马尔可夫随机场理论,认为每个像素跟周围的像素是有相关性关系,但是基于马尔可夫随机场的方法速度与执行效率都堪忧!所以OpenCV中没有实现。基于像素分类的背景分析方法自适应的背景...原创 2019-10-14 19:00:42 · 10887 阅读 · 2 评论 -
OpenCV—Python 图像加减乘除-逻辑运算
一、图像逻辑运算1.1 add—subtract—图像矩阵加减运算"""cv2.add(src1, src2, dst=None, mask=None, dtype=None) 加运算函数cv2.subtract(src1, src2, dst=None, mask=None, dtype=None) 减运算函数 src1:图像矩阵1 src1:图像矩阵2 dst:...原创 2018-09-27 14:10:53 · 14054 阅读 · 3 评论 -
OpenCV—Python Retinex图像增强算法
Retinex图像增强算法一、Retinex理论二、Retinex理论的理解三、Retinex理论应用一、Retinex理论Retinex理论始于Land和McCann于20世纪60年代作出的一系列贡献,其基本思想是人感知到某点的颜色和亮度并不仅仅取决于该点进入人眼的绝对光线,还和其周围的颜色和亮度有关。Retinex这个词是由视网膜(Retina)和大脑皮层(Cortex)两个词组合构成的....原创 2019-07-02 15:05:37 · 30490 阅读 · 24 评论 -
OpenCV—Python 图像去模糊(维纳滤波,约束最小二乘方滤波)
文章目录一、维纳滤波二、约束最小二乘方滤波一、维纳滤波对于运动引起的图像模糊,最简单的方法是直接做逆滤波,但是逆滤波对加性噪声特别敏感,使得恢复的图像几乎不可用。最小均方差(维纳)滤波用来去除含有噪声的模糊图像,其目标是找到未污染图像的一个估计,使它们之间的均方差最小,可以去除噪声,同时清晰化模糊图像。y(t)=h(t)⨂x(t)+n(t)y(t)=h(t)\bigotimes x(t)+n...原创 2019-07-16 14:43:10 · 36838 阅读 · 41 评论 -
OpenCV—Python 暗通道图像去雾算法
文章目录一、前言二、暗通道去雾原理一、前言何恺明的暗通道先验(dark channel prior)去雾算法是CV界去雾领域很有名的算法,关于该算法的论文"Single Image Haze Removal Using Dark Channel Prior"一举获得2009年CVPR最佳论文。作者统计了大量的无雾图像,发现一条规律:每一幅图像的RGB三个颜色通道中,总有一个通道的灰度值很低,几...原创 2019-07-08 14:49:04 · 23758 阅读 · 47 评论 -
OpenCV—Python 表格提取
表格提取的OpenCV-python实现,思路参考https://blog.csdn.net/asiwxy/article/details/83063432import cv2import osimport numpy as npfrom imutils.perspective import four_point_transformdef get_img(input_Path): ...原创 2019-06-17 21:03:37 · 10811 阅读 · 2 评论 -
OpenCV—Python CascadeClassifier(级联分类器)
文章目录一、CascadeClassifier的简介:Haar特征:LBP特征:HOG特征:二、检测步骤(视频取帧)训练级联分类器包括两个:训练和检测;一、CascadeClassifier的简介:CascadeClassifier是opencv下objdetect模块中用来做目标检测的级联分类器的一个类;简而言之是滑动窗口机制+级联分类器的方式;早期opencv版本仅支持haar特征的目标...原创 2019-06-17 10:36:21 · 17055 阅读 · 4 评论 -
图像相似度算法_优化后
以下代码主要是优化:OpenCV—python 角点特征检测之三(FLANN匹配)https://blog.csdn.net/wsp_1138886114/article/details/90578810# ============================== FLANN匹配器--特征保存 ===============================import cv2imp...原创 2020-02-23 11:32:45 · 637 阅读 · 0 评论 -
OpenCV-Python 选择ROI
OpenCV-Python选择ROI1. 矩形ROI,直接使用切片,简单粗暴2. 使用OpenCV中的一些函数获取ROI区域,这个用的最多3. 使用鼠标获取ROI区域4. 鼠标获取多边形ROI1. 矩形ROI,直接使用切片,简单粗暴import cv2src = cv2.imread("D:\\python_script\\ffff\\qipan.png")roi = src[20:15...原创 2019-06-01 18:07:36 · 21438 阅读 · 1 评论 -
OpenCV—python 角点特征检测之二(SIFT、SURF、ORB)
角点检测一、SIFT(Scale-Invariant Feature Trans-form)1.1 尺度空间极值检测1.2关键点(极值点)定位1.3 为关键点(极值点)指定方向参数1.4 关键点描述符1.5 关键点匹配二、 SURF(Speeded-Up Robust Features)一、SIFT(Scale-Invariant Feature Trans-form)D.Lowe 于2004...原创 2019-05-26 21:23:33 · 12087 阅读 · 1 评论 -
OpenCV—python 角点特征检测之一(cornerHarris、Shi-Tomasi、FAST)
文章目录角点检测 cornerHarris() 函数拐角检测(使用形态学方法)角点检测 cornerHarris() 函数cv2.cornerHarris(src=gray, blockSize, ksize, k, dst=None, borderType=None)"""cornerHarris参数: src - 数据类型为 float32 的输入图像。(输入单通道图)...原创 2019-05-23 15:15:33 · 20976 阅读 · 5 评论 -
OpenCV—Python 盲反卷积模糊图像恢复算法
文章目录一、前言二、算法流程解析:三、函数参数说明四、代码复现deconvblind() python 实现ind2sub() python 实现退化函数 h(-x,-y) 实现代码:一、前言Richardson-Lucy算法 盲反卷积算法可以同时恢复图像合点扩散函数(PSF)LR算法是时域的迭代非线性复原算法,基于贝叶斯理论,泊松分布和最大似然估计算法对图像进行修复。当下面这个迭代收敛...原创 2019-07-29 21:17:53 · 14098 阅读 · 9 评论 -
Matlab 函数circShift、psf2otf 的 python(Numpy)实现
Matlab 函数circShift、psf2otf 的python实现这两个函数主要用于模糊图像的去卷积中,原文请查看:https://blog.csdn.net/wsp_1138886114/article/details/95024180在自定义卷积核中需要用到import numpy as npimport cv2def circShift(array,K): "...原创 2019-07-28 09:40:52 · 5310 阅读 · 0 评论 -
OpenCV—Python 相似图像搜索算法
该算法基于SIFT特征检测算法,你可以查看:https://blog.csdn.net/wsp_1138886114/article/details/90578810。以下代码主要是优化了上述连接代码中的部分缺点。import cv2import numpy as npimport os,shutil,csvfrom scipy.spatial.distance import pdist...原创 2019-09-29 14:38:55 · 1290 阅读 · 0 评论 -
OpenCV—python—OCR 通用表格自动校正与识别
文章目录一、表格检测与矫正二、表格轮廓提取三、移除红色印章水印四、demo.py附:OCR个人见解各位好!今天写这个是只是用opencv的形态学来处理表格,并获取表格中的文本。一、表格检测与矫正以下 Extract_Rotate.py 的函数详解:__Duplicate_elements__ 主要用来统计重复元素。__four_point_transform__ 是重写了imutils....原创 2019-09-29 11:30:57 · 7501 阅读 · 10 评论 -
OpenCV—python 图片细化(骨架提取)一
文章目录一、前言二、第一种算法描述三、第二种算法一、前言Hilditch算法参看资料:http://cis.k.hosei.ac.jp/~wakahara/Hilditch.cHilditch第二种算法:http://cgm.cs.mcgill.ca/~godfried/teaching/projects97/azar/skeleton.html#algorithm图像细化:图像细化主要...原创 2019-09-21 21:59:13 · 24712 阅读 · 33 评论 -
OpenCV—python 图像压缩
文章目录一、简单的图像压缩二、待续一、简单的图像压缩import cv2''' ====图像压缩===== CV_INTER_NN - 最近邻插值, CV_INTER_LINEAR - 双线性插值 (缺省使用) CV_INTER_AREA - 使用像素关系重采样。当图像缩小时候,该方法可以避免波纹出现。当图像放大时,类似于 CV_INTER_NN ...原创 2019-09-12 10:04:00 · 10090 阅读 · 3 评论 -
OpenCV—python OCR文本检测
文章目录一、形态学文本区域检测二、MSER+NMS文本区域检测2.1 MSER2.2 NMS一、形态学文本区域检测图像形态学操作,包括膨胀、腐蚀基本操作,即可实现简单场景的文字检测。其中,“膨胀”就是对图像中的高亮部分进行扩张,让白色区域变多;“腐蚀”就是图像中的高亮部分被蚕食,让黑色区域变多。通过膨胀、腐蚀的一系列操作,可将文字区域的轮廓突出,并消除掉一些边框线条,再通过查找轮廓的方法计算...原创 2019-08-31 22:55:29 · 9261 阅读 · 11 评论 -
OpenCV—Python 分水岭算法图像分割
文章目录一、前言二、cv2.distanceTransform(src, distanceType, maskSize)三、基于标记的分水岭分割功能四、示例代码一、前言分水岭算法是一种图像区域分割法,在分割的过程中,它会把跟临近像素间的相似性作为重要的参考依据,从而将在空间位置上相近并且灰度值相近的像素点互相连接起来构成一个封闭的轮廓,封闭性是分水岭算法的一个重要特征。其他图像分割方法,如阈...原创 2019-08-28 14:33:53 · 20429 阅读 · 5 评论 -
OpenCV—python 简单的图像质量检测
写这个主要是为了提高OCR识别率,筛选出图像质量极差的二值图返回不识别,只识别质量高一点的二值图,灰度图以及RGB图片。统计以下:'白底方差', '图案方差', '像素波动方差','图像大小/分辨率' 这几个参考因素,若是像素波动方差小于1,图像大小/分辨率小于0.01,则是质量极差的图片了。import cv2,os,csvimport numpy as npdef get_img(...原创 2019-08-18 10:55:19 · 4834 阅读 · 5 评论