图像处理
文章平均质量分 61
1
心_kokoro
暂停更新
展开
-
python图像处理:测量物体大小 Measuring size of objects in an image with OpenCV
python图像处理:测量物体大小 Measuring size of objects in an image with OpenCV效果原理代码这篇文章是对Adrian Rosebrock大神博客的学习和整理。先看效果效果物品实际(长x宽)测量(单位:mm)硬币25.0x25.025.0x25.0橡皮55.0x18.259.2x29.0药丸18.0x7.020.1x7.4卡片87.3x62.789.0x64.1可以看到,还是比较原创 2021-03-14 19:41:08 · 10566 阅读 · 10 评论 -
python图像处理:文档拍照扫描(手动构造扫描仪)
python图像处理实践:拍照文档扫描效果原理代码补充说明本文是我在学习Adrian Rosebrock大佬的博客后的实践与整理。话不多说,先看效果。效果第一张是我自己拍的,字比较清楚;第二张是网图,比较模糊,但总体效果可以接受。原理首先,我们可以认定,我们要处理的图都是符合下面两点的:拍的文档是长方形的文档在整个图里占很大比例当然,如果背景是个比较单纯的底色,识别效果肯定会更好。自然语言来描述的话,流程大致如下:找到文档,将其摆平黑白化至于流程1,我在我的上 一篇博客原创 2021-03-13 23:14:44 · 6777 阅读 · 4 评论 -
python图像处理:透视变换
python图像处理:透视变换原理效果代码原理透视变换(Perspective Transformation)是将图片投影到一个新的视平面(Viewing Plane),也称作投影映射(Projective Mapping)。通用的变换公式为:u,v是原始图片坐标,对应得到变换后的图片坐标x,y,其中。变换矩阵可以拆成4部分,表示线性变换,比如scaling,shearing和ratotion。用于平移,产生透视变换。所以可以理解成仿射等是透视变换的特殊形式。经过透视变换之后的图片通常不是平行四原创 2021-03-09 19:59:07 · 4290 阅读 · 2 评论 -
python图像处理:边缘模糊
python图像处理:基于canny的动态边缘模糊效果原理canny边缘检测代码效果流程如下:先选择canny的两个阈值,确定好需要进行模糊的边缘,再选择模糊程度原理canny边缘检测参考链接Canny边缘检测算法可以分为以下5个步骤:使用高斯滤波器,以平滑图像,滤除噪声。计算图像中每个像素点的梯度强度和方向。应用非极大值(Non-Maximum Suppression)抑制,以消除边缘检测带来的杂散响应。应用双阈值(Double-Threshold)检测来确定真实的和原创 2021-01-22 19:48:27 · 4365 阅读 · 0 评论 -
python图像处理:图像融合
python图像处理:基于图像金字塔的动态图像融合效果原理高斯金字塔差分金字塔(拉普拉斯金字塔)重构与融合代码效果话不多说,先看实际效果。熊猫为主图,苹果为融入源。保留熊猫的边缘信息与部分颜色信息,融入苹果的部分色彩信息融入的比例可以动态调整原理这里就简单介绍下,详细内容请自行查阅资料参考链接1高斯金字塔对整个图像不断高斯滤波以及下采样,构成的所有图像集合才构成了图像的高斯金字塔。差分金字塔(拉普拉斯金字塔)对高斯金字塔逐层作差,得到损失信息。Q: 损失信息是什么?A原创 2021-01-22 19:24:21 · 5025 阅读 · 1 评论 -
python图像处理:全景图片转鱼眼图片(鱼眼矫正)
全景图片转鱼眼图片原理效果代码一二原理效果这里有两种具体实现我觉得第二种漂亮些代码一import cv2import numpy as np import mathdef transform(img): rows,cols,c = img.shape R = np.int(cols/2/math.pi) D = R*2 cx = R cy = R print(rows,cols,c,R,D,cx,cy) new_img =原创 2021-01-22 18:33:05 · 6070 阅读 · 8 评论 -
python图像处理:凸透镜效果/鱼眼图像
图像处理:凸透镜效果/鱼眼图像原理效果代码原理原理很简单,经过凸透镜放大的区域可以看成一个圆形区域,这个圆形区域是由原始图像一个很小的圆形区域扩展而来。效果代码import cv2import numpy as np import mathdef transform(img): rows,cols,c = img.shape center_x,center_y = rows/2,cols/2 #radius = min(center_x,center_y)原创 2021-01-22 18:23:28 · 2800 阅读 · 1 评论 -
python图像处理:图像灰度非线性变换
图像灰度的非线性变换平方变换对数变换平方变换将灰度进行平方再除以255,用于降级图像亮度增强亮部对比度减缓暗部对比度对比度可以看作灰度的斜率对数变换原创 2021-01-15 22:40:04 · 1783 阅读 · 1 评论 -
python图像处理:图像的傅里叶变换、低通滤波、高通滤波、带通滤波
图像的傅里叶变换:低通、高通、带通原理应用实践原理大家都知道,在一维上,傅里叶变换:能将一个时域上的信号转换到频率域上认为一个周期信号能用若干三角函数的和来表示在二维上,我们也可以将图片看做信号,只不过这个信号是在空间域上的。我们在观察时域上的信号变化时,是根据某个时间点的信号幅度与其相邻时间点的信号幅度来判断,同理,在空间域上,是根据某个空间点(比如的2行3列的像素点)信号幅度与其相邻空间点的信号幅度来判断其变化的,但与一维相比,二维多了方向这个概念。二维傅里叶变换:能将一个空间域上原创 2021-01-10 15:52:01 · 4227 阅读 · 1 评论 -
python图像处理:40行手动实现车牌检测(python+opencv)
40行手动实现车牌检测效果思路代码效果先来看下效果检测结果:思路原图转灰度图对灰度图进行高斯滤波、中值滤波去噪使用sobel算子计算梯度(即提取边缘),这里考虑到车牌上字都是瘦长的,所以我这里只用了水平梯度,这样可以避免环境的干扰对梯度图进行高斯滤波去除细节转二值图腐蚀1次,膨胀10次,来使车牌整体连接成一个白色色块寻找围成面积最大的轮廓,进行方向校正,最后画出代码import cv2 import numpy as np import matplotlib.py原创 2021-01-09 15:49:10 · 657 阅读 · 0 评论 -
python图像处理:图像线性灰度变换
图像线性灰度变换原理效果代码原理DB为变换后的灰度值,DA为变换前的灰度值,a为缩放率,b为截距。ab含义10原有灰度1!0灰度上移/下移-1255灰度反转>1增强对比度0<a<1减小对比度<0反色(底片效果)效果代码img = cv2.imread('Panda.jpg')img_gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)rows,cols原创 2021-01-08 22:11:17 · 1947 阅读 · 0 评论 -
python形态学图像处理:图像腐蚀、图像膨胀、开运算、闭运算、梯度运算、顶帽、黑帽
形态学图像处理:腐蚀、膨胀、开运算、闭运算腐蚀、膨胀开闭运算效果python+cv2代码腐蚀、膨胀这两个操作原理一样,都是先创造一个kernel,在kernel中划分感兴趣区域与原点。腐蚀时,若当前感兴趣区域中有0,则将原点赋为0;膨胀时,若当前感兴趣区域中有1,则将原点赋为1。开闭运算开运算:先腐蚀,再膨胀开运算可用于去噪、去毛刺、分离两个连接在一起的物体。闭运算:先膨胀,再腐蚀闭运算可用于填充小孔、连接两个分离的物体。这里的物体是相对的,可以理解成:开运算:连接黑色色块,去除白色原创 2021-01-06 12:02:28 · 963 阅读 · 0 评论 -
绘制图像直方图
绘制图像直方图CV2实现Matplotlib实现CV2实现import cv2 as cv import numpy as npimport matplotlib.pyplot as plt%matplotlib qt5img = cv.imread('111.jpg')channels = ('b','g','r')for i,c in enumerate(channels):#参数分别为图像、通道、掩码、bins(分成几堆)、范围 hist = cv.calcHist([im原创 2021-01-02 22:51:18 · 302 阅读 · 0 评论 -
python来画Bad apple! 50行实现视频转字符画
50行实现视频转字符画基本思路版本一样例问题代码版本二样例![在这里插入图片描述](https://img-blog.csdnimg.cn/20201228185931184.gif)解决方案代码基本思路读取一段视频,读取每一帧对每一帧的图片的尺寸进行处理,并转成灰度图对于灰度图的每一像素将其映射到自己选择的字符集中,形成字符串循环打印字符串版本一样例问题使用os.system(‘cls’)来清空控制台输出效率低下,会出现下图展示的这种情况,导致看起来一闪一闪的此问题在版本二中解原创 2020-12-28 19:02:27 · 1674 阅读 · 1 评论 -
python图像处理(二):添加椒盐噪声
python图像处理(二):添加椒盐噪声核心思想代码核心思想椒盐噪声是一种随机出现的白点或者黑点,即把像素随机置0或255,直接看代码吧。代码import cv2import numpy as npimport randomdef Spnoise_func(image,prob=0.05): ''' 添加椒盐噪声 prob:噪声比例 ''' output = image.copy() thres = 1 - prob for i in range(image.原创 2020-11-06 18:24:45 · 3856 阅读 · 2 评论 -
python图像处理(一): 添加高斯噪声
python图像处理(一): 添加高斯噪声核心思想代码核心思想先将原图片的像素值除以255,即将像素值区间[0,255]投射到[0,1],再添加服从高斯分布的噪声,最后将处理后的像素矩阵乘255恢复。为什么不直接添加噪声呢? 其实也可以,请读者老爷自己尝试吧 = =代码import cv2import numpy as npdef Gaussnoise_func(image, mean=0, var=0.005): ''' 添加高斯噪声 mean : 均值原创 2020-11-06 17:11:15 · 18059 阅读 · 5 评论