
计算机视觉
文章平均质量分 86
主要以计算机视觉方向为主题,涉及OCR,以及其他的图像技术,探讨图像算法原理,并对其原理进行复现,该系列进一步探讨最前沿关于图像的神经网络论文及其架构的讲解,并且通过代码案例进行演示。
SongpingWang
计算机视觉相关--程序语言相关
展开
-
图像曲率 与 黎曼几何
一、图像曲率python 示例:#encoding=utf-8import numpy as npimport cv2import osdef calcAndDrawHist(image, color): hist = cv2.calcHist([image], [0], None, [256], [0.0, 255.0]) minVal, maxVal, minLoc, maxLoc = cv2.minMaxLoc(hist) histImg = np.zero原创 2021-05-26 11:10:26 · 2319 阅读 · 0 评论 -
Python 离散余弦变换(DCT)
文章目录离散余弦变换(DCT)、离散小波变换(DWT)和离散傅立叶变换(DFT)离散余弦变换(Discrete Cosine Transform,DCT)是图像频域变换的一种,它类似于离散傅里叶变换(DFT for Discrete Fourier Transform,DFT),离散余弦变换相当于一个长度大概是它两倍的离散傅里叶变换,但是离散余弦变换只使用实数。在傅里叶级数中,如果被展开的函数是实偶函数,那么在傅里叶级数中则只包含余弦项,再将其离散化,由此便可导出离散余弦变化。高频系数(AC系数):一原创 2021-05-19 09:30:27 · 15676 阅读 · 5 评论 -
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 · 67657 阅读 · 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 · 1514 阅读 · 0 评论 -
图像分割概述
1、基于阈值的分割方法阈值法的基本思想是基于图像的灰度特征来计算一个或多个灰度阈值,并将图像中每个像素的灰度值与阈值相比较,最后将像素根据比较结果分到合适的类别中。因此,该类方法最为关键的一步就是按照某个准则函数来求解最佳灰度阈值。2、基于边缘的分割方法所谓边缘是指图像中两个不同区域的边界线上连续的像素点的集合,是图像局部特征不连续性的反映,体现了灰度、颜色、纹理等图像特性的突变。通常情况下...原创 2021-01-06 10:33:21 · 143 阅读 · 1 评论 -
基于均值调整的自适应局部伽玛校正 Cython
原文github:https://github.com/zhigangjiang/simple_agc原创 2020-12-17 19:43:47 · 999 阅读 · 1 评论 -
基于单幅图像的快速去雾
开源地址:https://github.com/BBuf/Image-processing-algorithm前言这是OpenCV图像处理算法朴素实现用于单幅图像去雾的算法,作者来自清华大学,论文原文见附录。算法流程原创 2020-11-02 09:26:08 · 1579 阅读 · 0 评论 -
数字图像处理—图像颜色特征
文章目录一、图像颜色特征简介1.1 常用的特征提取与匹配方法二、代码演示一、图像颜色特征简介特点: 颜色特征是一种全局特征,描 述了图像或图像区域所对应的景物的表面性质。一般颜色特征是基于像素点的特征,此时所有属于图像或图像区域的像素都有各自的贡献。由于颜色对图像或图像区 域的方向、大小等变化不敏感,所以颜色特征不能很好地捕捉图像中对象的局部特征。另外,仅使用颜色特征查询时,如果数据库很大,常会将许多不需要的图像也 检索出来。颜色直方图是最常用的表达颜色特征的方法,其优点是不受图像旋转和平移变化的影响原创 2024-04-13 12:09:07 · 1298 阅读 · 0 评论 -
数字图像处理—图像形状特征
文章目录一、图像形状特征简介1.1 常用的特征提取与匹配方法一、图像形状特征简介特点:各种基于形状特征的检索方法都可以比较有效地利用图像中感兴趣的目标来进行检索,但它们也有一些共同的问题,包括:① 目前基于形状的检索方法还缺乏 比较完善的数学模型;② 如果目标有变形时检索结果往往不太可靠;③ 许多形状特征仅描述了目标局部的性质,要全面描述目标常对计算时间和存储量有较高的要求;④ 许多形状特征所反映的目标形状信息与人的直观感觉不完全一致,或者说,特征空间的相似性与人视觉系统感受到的相似性有差别。另原创 2024-04-13 09:23:00 · 870 阅读 · 0 评论 -
数字图像处理—图像纹理特征
文章目录一、纹理特征的特点二、特征提取---纹理2.1 纹理分析2.2 分析方法详解三、衡量直方图间的相似性在传统图像特征中,图像特征分析主要有以下方法:颜色特征(颜色矩–颜色集–颜色聚合向量–颜色相关图) 【参考文章】颜色直方图(RGB-HSV-LAB-Gray) 【参考文章】颜色量化 【参考文章】 ,【或者查看】bin的选取(忽略数值较小的bin区间)【参考文章】角点特征匹配 【参考文章】一、纹理特征的特点优点:包含多个像素点的区域中进行统计计算;常具有旋转不变性;对于噪原创 2020-09-21 19:53:12 · 18137 阅读 · 1 评论 -
基于二维伽马函数的光照不均匀图像自适应校正算法
关于数字图像处理:本文介绍一种用于解决光照不均匀的图像自适应校正算法。光照不均匀其实是非常常见的一种状况,为了解决图像曝光不足,或者不均衡而提出来的解决方案之一,关于【Retiex解决方案请查看】。论文原文: 点击查看算法原理论文使用了Retinex的多尺度高斯滤波求取「光照分量」,然后使用了「二维Gamma函数」针对原图的「HSV空间的V(亮度)分量」进行亮度改变,得到结果。具体实现流程如下:Mat RGB2HSV(Mat src) { int row = src.rows; int co原创 2020-09-19 18:10:18 · 6791 阅读 · 6 评论 -
python 二维码识别与重构
文章目录关于二维码主要有三个python模块:zbar 、zbarlight、zxing。其识别效果与速度。其他人说的很明白,我这里不再阐述。【请点击】zxing开源地址:https://github.com/zxing/zxing/安装依赖:pip install -i https://pypi.tuna.tsinghua.edu.cn/simple opencv-pythonpip install -i https://pypi.tuna.tsinghua.edu.cn/simple pill原创 2020-09-21 19:54:52 · 1955 阅读 · 0 评论 -
图像处理—局部拉普拉斯图像增强
一、拉普拉斯图像增强在图像增强方面:通过提高图像的对比度从而使得图像清晰起来,也就是提高邻域内像素的灰度差来提高图像的对比度。拉普拉斯原理:图像的拉普拉斯增强是利用拉普拉斯算子对图像进行边缘增强的一种方法,拉普拉斯算子是以图像邻域内像素灰度查分计算为基础,通过二阶微分推导出的一种图像邻域增强算法。基本思想是:当邻域内的中心像素灰度低于它所在的邻域内的其他像素的平均灰度时,此中心像素的灰度应被进一步降低。当邻域内的中心像素灰度高于它所在的邻域内的其他像素的平均灰度时,此中心像素的灰度应被进一步提高。关原创 2020-08-23 12:43:19 · 3384 阅读 · 1 评论 -
图像折痕与扭曲去除
文章目录一、前言一、前言去除历史扫描文件图片中的折痕,主要为技术探讨。参考文献:http://www.doc88.com/p-0886436885083.html主要使用:二值化与骨架提取文章基于路径搜索折痕检测方法的系统框图如下:首先,包含折痕的感兴 趣区域可以根据亮度值的分布提取出来。基于凸包络的算法用于提取出感兴趣区 域的阴影图像。利用折痕两侧的亮度不同对阴影图像进行滤波得到折痕位置图。 对滤波后的图像进行二值化。保留最大连通域。之后运用形态学膨胀和骨骼细化操作产生路径搜索图。最后运用迪杰原创 2020-08-08 09:39:21 · 3244 阅读 · 2 评论 -
基于灰度世界、完美反射、动态阈值等图像自动白平衡算法
文章目录一、灰度世界算法二、完美反射算法三、动态阈值算法一、灰度世界算法灰度世界算法(Gray World)是以灰度世界假设为基础的,该假设认为对于一幅有着大量色彩变化的图像, R、 G、 B 三个分量的平均值趋于同一个灰度K。一般有两种方法来确定该灰度。算法步骤直接给定为固定值, 取其各通道最大值的一半,即取为127或128;令 K = (Raver+Gaver+Baver)/3,其中Raver,Gaver,Baver分别表示红、 绿、 蓝三个通道的平均值。分别计算各通道的增益:Kr原创 2021-01-05 09:06:57 · 2358 阅读 · 0 评论 -
Cython—图片去噪代码
在OCR中,特别是为了提高验证码识别率,对会图片进行预处理。一般的流程是:转成灰度图,或者对特定图取其中一个通道进行阈值二值化处理去除噪点OCR识别以下就是图片降噪代码加速版本:处理一张1920*1080的图片0.107s(CPU=i5-8300H)#%%cython --compile-args=/openmp --link-args=/openmp import numpy as npcimport numpy as npcimport cythonfrom cython.p原创 2020-05-24 16:39:03 · 603 阅读 · 0 评论 -
Cython— 颜色量化(255*255*255 颜色量化转成 12*12*12)
这里的颜色量化加速版本。【原文请查看】。主要是用于显著性检测。将255*255*255=16581375 颜色量化转成 12*12*12=1728。优化方向一代码能跑通,但是有点问题,待修改%%cython --cplus --annotatefrom cpython cimport arraycimport numpy as npimport numpy as npimport ...原创 2019-11-24 12:35:28 · 1556 阅读 · 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 · 997 阅读 · 0 评论 -
Cython—显著性检测算法 LC
各位好:这里是LC算法的加速版。查看原代码请点击:https://blog.youkuaiyun.com/wsp_1138886114/article/details/102560328之前用numpy实现LC算法,处理一张1920*1080分辨率,大小1.1M的图片耗时:0.52s想着加速一下代码运行速度,故使用Cython包装了一下:上面的图片耗时:0.17sCython版——著性检测算法 LC ...原创 2019-11-08 08:55:31 · 843 阅读 · 0 评论 -
FCN全卷积网络—upsampling(上采样)——OpenCV图像金字塔
一、上采样理论1.1 bilinear1.2 Deconvolution(反卷积)1.3 unpooling二、OpenCV金字塔:高斯金字塔、拉普拉斯金字塔与图片缩放一、上采样理论FCN全卷积网络:将网络的全连接层 变成 卷积层之后,整个网络变成了只有卷积层和池化层的网络,于是网络就称之为全卷积网络。 全卷积网络一般是用来对图像进行...原创 2018-08-17 16:43:58 · 9820 阅读 · 0 评论 -
基于OpenCV、随机森林算法实现的图像分类识别系统
1 数据准备2 使用RGB颜色直方图做特征训练分类器2.1 计算RGB颜色直方图2.2 使用随机森林训练分类器2.3 评估随机森林分类器开发环境jupyter notebook import cv2import osimport pickle #持久化import numpy a...原创 2018-08-11 16:27:35 · 12188 阅读 · 6 评论 -
Facebook将照片3D化
文章目录此文纯属爱好原文:https://ai.facebook.com/blog/-powered-by-ai-turning-any-2d-photo-into-3d-using-convolutional-neural-nets/Facebook AI 团队开源了将2D图像转成3D图像算法,将单摄像头拍摄的2D RGB图像转化成3D图像。这可以让个人开发者和创业团队容易地也进入到照片3...原创 2020-03-10 08:55:51 · 929 阅读 · 0 评论 -
SLIC超像素算法
文章目录一、前言二、现有的超像素算法2.1 基于图的算法2.2 基于梯度上升的方法三、SLIC超像素3.1 算法详解3.2 距离测量2.3 后处理2.4 时间复杂度一、前言源码下载:https://www.epfl.ch/labs/ivrl/superpixels/超像素是把一张图片中具有相似特征的像素进行聚类,形成一个更具有代表性的大“像素”。这个新的像素可以作为其他图像处理算法的基本单位...转载 2020-03-08 11:12:31 · 12926 阅读 · 2 评论 -
关于Hessian矩阵的图像增强
Hessian矩阵定义:若一元函数 f(x)f(x)f(x) 在x=x(0)x = x^{(0)}x=x(0) 点的某个领域内具有任意阶导数,则 f(x)f(x)f(x) 在x(0)x^{(0)}x(0) 点的泰勒展开式为:f(x)=f(x(0))+f′(x(0))Δx+12f′′(x(0))(Δx2)+...f(x) = f(x^{(0)}) + f'(x^{(0)})\Delta x +...原创 2020-02-22 22:03:03 · 4579 阅读 · 0 评论 -
注意力引导的图像去噪
说明论文链接:https://www.sciencedirect.com/science/article/abs/pii/S0893608019304241代码链接:https://github.com/hellloxiaotian/ADNet哈尔滨工业大学与北京大学的研究人员在神经网络Top期刊NeuralNetworks上2020年联合发表《Attention-guided CNN fo...原创 2020-03-09 20:29:17 · 3799 阅读 · 5 评论 -
图像分割—GrabCut算法
Grabcut是基于图割(graph cut)实现的图像分割算法,它需要用户输入一个bounding box作为分割目标位置,实现对目标与背景的分离/分割,这个跟KMeans与MeanShift等图像分割方法有很大的不同,但是Grabcut分割速度快,效果好,支持交互操作,因此在很多APP图像分割/背景虚化的软件中可以看到其身影。该算法主要基于以下知识:k均值聚类高斯混合模型建模(GMM)...原创 2020-01-23 17:06:39 · 26182 阅读 · 2 评论 -
基于区域的对比度方法的显著区域检测—RC
基于区域的对比度方法python代码:【原文请点击】基于区域对比度分析的显著性检测通过定义每个区域与其他区域的相似度权重得到区域显著性值,完成显著性检测。RC做法需要首先生成区域,通过基于图的图像分割得到很多图像区域,对一个区域计算显著性值。算法流程:图片RGB转Lab颜色空间高斯模糊基于图的图像分割,形成分割区域【代码点击】量化颜色值,减少计算量【代码点击】创建区域并形成区域对...原创 2019-12-27 21:35:04 · 5005 阅读 · 0 评论 -
Cython—基于区域的对比度—图像分割的区域对比度计算
这是基于区域的对比度的显著性检测代码,【关于原文请查看】关于图像分割的区域对比度计算:计算区域的中心与质心区域颜色相似度距离的高斯权重分布生成新区域统计区域边界的像素数量区域分割#%%cython --cplus --annotateimport numpy as npcimport cythoncimport numpy as npfrom cpython cimpo...原创 2019-12-26 16:27:21 · 1813 阅读 · 0 评论 -
Cython—基于图的图像分割
图像分割:原创 2019-12-17 11:20:54 · 1788 阅读 · 0 评论 -
基于图的图像分割
基于图的图像分割 Effective graph-based image segmentation一、前言二、算法理论2.1 构建图2.2 分割图2.3 算法的实现2.4 几个分割概念2.5 算法步骤三、代码实现一、前言最近一段时间在复现基于区域的对比度方法(region-based contrast 简称RC)的显著性检测。【原文请点击】 其中,遇到了问题。主要是用到了基于图的图像分割。显...原创 2019-12-08 21:07:21 · 2841 阅读 · 0 评论 -
机器视觉 OpenCV—python 多目标跟踪与视频分析
在上一篇中,我们了解目标跟踪(光流),这次我们在视频监控与分析中,视频前后景分析、多目标检测、目标跟踪等算法进行协同工作。该算法实现了匈牙利算法与卡尔曼滤波的多目标跟踪。贡献者:俄罗斯的Andrey Smorodovgithub下载:https://github.com/Smorodov/Multitarget-tracker.git该库包含的内容有:1.背景减: 内置来自OpenCV的...原创 2019-01-01 11:15:13 · 5994 阅读 · 3 评论 -
机器视觉 OpenCV—python 基于深度学习的实时目标检测
一、使用深度学习和 OpenCV 进行视频目标检测运动目标在工厂,监控,自动驾驶中有着举足轻重的地位。在做实时目标检测之前,我做过OpenCV的目标检测和运动轨迹及运动方向预判等,但这些都是基于OpenCV的,有一定的局限性。为此,从这篇博客开始将给大家带来一系列的实时目标检测,与大家一起学习。...原创 2018-11-24 08:49:46 · 6207 阅读 · 0 评论 -
机器视觉 OpenCV—python目标跟踪(光流)
一、运动检测1.1 检测思路目标跟踪是对摄像头视频中的移动目标进行定位的过程。实时目标跟踪是许多计算机视觉应用的重要任务,如监控、基于感知的用户界面、增强现实、基于对象的视频压缩以及辅助驾驶等。好久之前做过一次人脸检测,里面涉及到了目标跟踪。这次实现一般的运动物体检测,关于实现视频目标跟踪的方法有很多,当跟踪所有移动目标时,帧之间的差异会变的有用;当跟踪视频中移动的手时,基于皮肤颜色的均值...原创 2018-12-05 16:59:11 · 25624 阅读 · 11 评论 -
GAN—为百年旧照上色
前言Attention GAN 该项目的目的是为旧照片着色并将其修复。带自注意力机制的生成对抗网络。生成器是一个预训练 Unet,我将它修改为具有光谱归一化和自注意力。这是一个非常简单的转换过程。首先,先来看一下 DeOldify 对旧照片的修复效果!受 GAN Progressive Growing 的启发(参见《Progressive Growing of GANs for Impr...原创 2018-11-06 19:44:50 · 3609 阅读 · 0 评论 -
PIL_Image—OpenCV_Image转换
PIL.Image转换成OpenCV格式:import cv2 from PIL import Image import numpy image = Image.open("plane.jpg") image.show() img = cv2.cvtColor(numpy.asarray(image),cv2.COLOR_RGB2BGR) cv2.imshow("Ope...原创 2018-10-18 14:13:26 · 453 阅读 · 0 评论 -
机器视觉 OpenCV—python 基于LSTM网络的OCR文本检测与识别
文章目录一、背景与环境搭建二、文本检测与识别一、背景与环境搭建OpenCV的文本识别流程:OpenCV EAST 文本检测器执行文本检测,我们提取出每个文本 ROI 并将其输入 Tesseract,从而构建完整的 OpenCV OCR 流程!环境搭建Tesseract (v4) 最新版本支持基于深度学习的 OCR,准确率显著提高。底层的 OCR 引擎使用的是一种循环神经网络(RN...原创 2018-10-16 16:11:12 · 6493 阅读 · 2 评论 -
机器视觉 OpenCV—python 标注小工具(目标检测)
# 获取 picture_dir 下文件的所有图片,并以24帧率显示import osfrom itertools import cyclefilenames = os.listdir("picture_dir")img_iter = cycle([cv2.imread(os.sep.join(["picture_dir",x])) for x in原创 2018-10-15 17:00:34 · 2851 阅读 · 0 评论 -
机器视觉 OpenCV—python 数据增强
一、前言大家好,我之前做过图像分类或识别时,经常感慨数据集不够大,导致模型的准确度不够高,虽然用过一些图像增强的方法,也见过别人用过一些数据增强的方法,接下来主要统计一些常见的图像增强的方法。作为一种深度学习中的常用手段,图像增加对模型的泛化性和准确性都有帮助。数据增加的具体使用方式一般有两种:一种是实时增加,比如在Caffe中加入数据扰动层,每次图像都先经过扰动操作,再去训练,这样训练经...原创 2018-10-15 17:01:35 · 8513 阅读 · 6 评论 -
机器视觉 OpenCV—python 图像数据集获取工具(视频取帧)
一、前言之前在做图像分类的时候,人脸识别(开源代码)的练手,数据集获取麻烦(没人愿意将自己照片给人家做数据集),于是就用自己造数据集,但是拍照拍几百张训练效果不好,也嫌麻烦,干脆就是视频取帧的方式,在这之前使用专门的软件。不过opencv自带了视频处理的API,详细代码如下:二、视频取帧代码import cv2import osimport sysinput_path = s...原创 2018-10-11 15:47:55 · 5269 阅读 · 1 评论 -
python 基于机器学习—深度学习识别验证码
文章目录一、前言项目的整个识别流程:关于数据集二、验证码清理并生成训练集样本2.1 获取图像和标签2.2 初步去除验证码的噪点2.3 图像细清理2.4 字符切割2.5 保存到训练集三、特征提取一、前言开发环境:Anaconda | python 3.5 —pycharm / jupyter notebook项目的整个识别流程:① 验证码清理并生成训练集样本② 验证码特征提取③ 拟合识别...原创 2018-10-07 11:32:53 · 6920 阅读 · 0 评论