- 博客(44)
- 收藏
- 关注
原创 数字图像处理100问—43 Canny 边缘检测:第三步——滞后阈值
提示:内容整理自:https://github.com/gzr2017/ImageProcessing100WenCV小白从0开始学数字图像处理43 Canny 边缘检测:第三步——滞后阈值在这里进行 Canny 边缘检测的最后一步。在这里我们将通过设置高阈值和低阈值来将梯度幅值二值化。如果梯度幅值edge(x,y)大于高阈值的话,令edge(x,y)=255;如果梯度幅值edge(x,y)小于低阈值的话,令edge(x,y)=0;如果梯度幅值edge(x,y)介于高阈值和低阈值之间并且周.
2022-05-30 21:11:09 1516 1
原创 数字图像处理100问—42 Canny 边缘检测:第二步——边缘细化
提示:内容整理自:https://github.com/gzr2017/ImageProcessing100WenCV小白从0开始学数字图像处理42 Canny 边缘检测:第二步——边缘细化在这里完成 Canny 边缘检测的第二步。我们从在第41问中求出的边缘梯度进行非极大值抑制,来对边缘进行细化。非极大值抑制是对除去非极大值以外的值的操作的总称(这个术语在其它的任务中也经常出现)。在这里,我们比较我们我们所关注的地方梯度的法线方向邻接的三个像素点的梯度幅值,如果该点的梯度值不比其它两个像素大.
2022-05-30 21:02:22 950
原创 数字图像处理100问—41 Canny 边缘检测:第一步——边缘强度
提示:内容整理自:https://github.com/gzr2017/ImageProcessing100WenCV小白从0开始学数字图像处理41 Canny 边缘检测:第一步——边缘强度问题41至问题43是边缘检测方法中的一种——Canny 边缘检测法的理论介绍。使用高斯滤波;在x方向和y方向上使用 Sobel 滤波器,在此之上求出边缘的强度和边缘的梯度;对梯度幅值进行非极大值抑制(Non-maximum suppression)来使边缘变得更细;使用滞后阈值来对阈值进行处理。上面.
2022-05-30 20:51:18 1139
原创 数字图像处理100问—40 JPEG 压缩——第四步:YCbCr+离散余弦变换+量化
提示:内容整理自:https://github.com/gzr2017/ImageProcessing100WenCV小白从0开始学数字图像处理40 JPEG 压缩——第四步:YCbCr+离散余弦变换+量化将图像转为 YCbCr 色彩空间之后,进行 离散余弦变换再对 Y 用 Q1 量化矩阵量化,Cb 和 Cr 用 Q2 量化矩阵量化。最后通过离散余弦逆变换对图像复原。还需比较图像的容量。这是实际生活中使用的减少 JPEG 数据量的方法,Q1 和 Q2 根据 JPEG 规范由以下等式定义:Q1 =.
2022-05-10 21:35:49 911 1
原创 数字图像处理100问—39 JPEG 压缩——第三步:YCbCr 色彩空间
提示:内容整理自:https://github.com/gzr2017/ImageProcessing100WenCV小白从0开始学数字图像处理39 JPEG 压缩——第三步:YCbCr 色彩空间在 YCbCr 色彩空间内,将 Y 乘以0.7以使对比度变暗。YCbCr 色彩空间是用于将图像由表示亮度的 Y、表示蓝色色度Cb以及表示红色色度Cr表示的方法。这用于 JPEG 转换。使用下式从 RGB 转换到 YCbCr:Y = 0.299 * R + 0.5870 * G + 0.114 * B.
2022-05-10 21:31:16 1011
原创 数字图像处理100问—38 JPEG 压缩——第二步:离散余弦变换+量化
提示:内容整理自:https://github.com/gzr2017/ImageProcessing100WenCV小白从0开始学数字图像处理38 JPEG 压缩——第二步:离散余弦变换+量化量化离散余弦变换系数并使用 离散余弦逆变换恢复。再比较变换前后图片的大小。量化离散余弦变换系数是用于编码 JPEG 图像的技术。量化即在对值在预定义的区间内舍入,其中floor、ceil、round等是类似的计算。在 JPEG 图像中,根据下面所示的量化矩阵量化离散余弦变换系数。该量化矩阵取自 JPEG.
2022-05-10 21:28:12 490
原创 数字图像处理100问—37 PSNR
提示:内容整理自:https://github.com/gzr2017/ImageProcessing100WenCV小白从0开始学数字图像处理37 PSNR离散余弦逆变换中如果不使用8作为系数,而是使用4作为系数的话,图像的画质会变差。来求输入图像和经过离散余弦逆变换之后的图像的峰值信噪比吧!再求出离散余弦逆变换的比特率峰值信噪比(Peak Signal to Noise Ratio)缩写为PSNR,用来表示信号最大可能功率和影响它的表示精度的破坏性噪声功率的比值,可以显示图像画质损失的程度。.
2022-05-10 21:18:40 781
原创 数字图像处理100问—36 JPEG 压缩——第一步:离散余弦变换(Discrete Cosine Transformation)
提示:内容整理自:https://github.com/gzr2017/ImageProcessing100WenCV小白从0开始学数字图像处理36 JPEG 压缩——第一步:离散余弦变换(Discrete Cosine Transformation)imori.jpg灰度化之后,先进行离散余弦变换,再进行离散余弦逆变离散余弦变换(Discrete Cosine Transformation)是一种使用下面式子计算的频率变换:T = 8F(u,v) = 1 / T * C(u)C(v) * S.
2022-05-10 21:14:42 950
原创 数字图像处理100问—35 傅立叶变换——带通滤波
提示:内容整理自:https://github.com/gzr2017/ImageProcessing100WenCV小白从0开始学数字图像处理35 傅立叶变换——带通滤波将imori.jpg灰度化之后进行傅立叶变换并进行带通滤波,之后再用傅立叶逆变换复原!在这里,我们使用可以保留介于低频成分和高频成分之间的分量的带通滤波器。在这里,我们使用可以去除低频部分,只保留高频部分的高通滤波器。假设从低频的中心到高频的距离为r,我们保留0.1r至0.5r的分量。代码如下:1.引入库CV2计算机视.
2022-05-07 17:47:14 645
原创 数字图像处理100问—34 傅立叶变换——高通滤波
提示:内容整理自:https://github.com/gzr2017/ImageProcessing100WenCV小白从0开始学数字图像处理34 傅立叶变换——高通滤波将imori.jpg灰度化之后进行傅立叶变换并进行高通滤波,之后再用傅立叶逆变换复原!在这里,我们使用可以去除低频部分,只保留高频部分的高通滤波器。假设从低频的中心到高频的距离为r,我们保留0.2r的低频分量。代码如下:1.引入库CV2计算机视觉库import cv2import numpy as npimpo.
2022-05-07 17:43:00 318
原创 数字图像处理100问—33 傅立叶变换——低通滤波
提示:内容整理自:https://github.com/gzr2017/ImageProcessing100WenCV小白从0开始学数字图像处理33 傅立叶变换——低通滤波将imori.jpg灰度化之后进行傅立叶变换并进行低通滤波,之后再用傅立叶逆变换复原吧!通过离散傅立叶变换得到的频率在左上、右上、左下、右下等地方频率较低,在中心位置频率较高。在图像中,高频成分指的是颜色改变的地方(噪声或者轮廓等),低频成分指的是颜色不怎么改变的部分(比如落日的渐变)。在这里,使用去除高频成分,保留低频成分的.
2022-05-07 17:38:32 298
原创 数字图像处理100问—32 傅立叶变换(Fourier Transform)
提示:内容整理自:https://github.com/gzr2017/ImageProcessing100WenCV小白从0开始学数字图像处理32 傅立叶变换(Fourier Transform)使用离散二维傅立叶变换(Discrete Fourier Transformation),将灰度化的imori.jpg表示为频谱图。然后用二维离散傅立叶逆变换将图像复原。二维离散傅立叶变换是傅立叶变换在图像处理上的应用方法。通常傅立叶变换用于分离模拟信号或音频等连续一维信号的频率。但是,数字图像使用[0.
2022-05-07 11:23:22 807
原创 数字图像处理100问—31 仿射变换(Afine Transformations)——倾斜
提示:内容整理自:https://github.com/gzr2017/ImageProcessing100WenCV小白从0开始学数字图像处理31 仿射变换(Afine Transformations)——倾斜使用仿射变换,输出(1)那样的x轴倾斜30度的图像(dx=30),这种变换被称为X-sharing。使用仿射变换,输出(2)那样的y轴倾斜30度的图像(dy=30),这种变换被称为Y-sharing。使用仿射变换,输出(3)那样的x轴、y轴都倾斜30度的图像(dx = 30, dy =.
2022-05-07 10:52:43 354
原创 数字图像处理100问—30 仿射变换( Afine Transformations )——旋转
提示:内容整理自:https://github.com/gzr2017/ImageProcessing100WenCV小白从0开始学数字图像处理30 仿射变换( Afine Transformations )——旋转使用仿射变换,逆时针旋转30度。使用仿射变换,逆时针旋转30度并且能让全部图像显现(也就是说,单纯地做仿射变换会让图片边缘丢失,这一步中要让图像的边缘不丢失,需要耗费一些工夫)。使用下面的式子进行逆时针方向旋转A度的仿射变换: x' cosA -sinA tx .
2022-05-06 17:15:05 843
原创 数字图像处理100问—29 仿射变换( Afine Transformations )——放大缩小
提示:内容整理自:https://github.com/gzr2017/ImageProcessing100WenCV小白从0开始学数字图像处理29 仿射变换( Afine Transformations )——放大缩小使用仿射变换,将图片在x方向上放大1.3倍,在y方向上缩小至0.8倍。在上面的条件下,同时在x方向上像右平移30(+30),在y方向上向上平移30(-30)。代码如下:1.引入库CV2计算机视觉库import cv2import numpy as npimpor.
2022-05-06 15:12:17 976
原创 数字图像处理100问—28 仿射变换( Afine Transformations )——平行移动
提示:内容整理自:https://github.com/gzr2017/ImageProcessing100WenCV小白从0开始学数字图像处理28 仿射变换( Afine Transformations )——平行移动仿射变换利用3x3的矩阵来进行图像变换。变换的方式有平行移动(问题28)、放大缩小(问题29)、旋转(问题30)、倾斜(问题31)等。原图像记为(x,y),变换后的图像记为(x’,y’)。图像放大缩小矩阵为下式:[ x' ] = [a b][x] y' c d .
2022-05-05 14:29:39 1057
原创 数字图像处理100问—27 双三次插值( Bicubic Interpolation )
提示:内容整理自:https://github.com/gzr2017/ImageProcessing100WenCV小白从0开始学数字图像处理27 双三次插值( Bicubic Interpolation )使用双三次插值将图像放大1.5倍双三次插值是双线性插值的扩展,使用邻域16像素进行插值。I(x-1,y-1) I(x,y-1) I(x+1,y-1) I(x+2,y-1)I(x-1,y) I(x,y) I(x+1,y) I(x+2,y)I(x-1,y+1) I.
2022-05-05 14:22:43 2091
原创 数字图像处理100问—26 双线性插值( Bilinear Interpolation )
提示:内容整理自:https://github.com/gzr2017/ImageProcessing100WenCV小白从0开始学数字图像处理26 双线性插值( Bilinear Interpolation )双线性插值考察4邻域的像素点,根据距离设置权值。虽然计算量增大使得处理时间变长,但是可以有效抑制画质劣化。放大图像的座标(x’,y’)除以放大率a,得到对应原图像的座标floor(x’/a, y’/a)。求原图像的座标(x’/a, y’/a)周围4邻域的座标I(x,y), I(x+1,.
2022-05-04 22:02:13 413
原创 数字图像处理100问—25 最邻近插值( Nearest-neighbor Interpolation )
提示:内容整理自:https://github.com/gzr2017/ImageProcessing100WenCV小白从0开始学数字图像处理25 最邻近插值( Nearest-neighbor Interpolation )最近邻插值在图像放大时补充的像素取最临近的像素的值。由于方法简单,所以处理速度很快,但是放大图像画质劣化明显。使用下面的公式放大图像吧!I’为放大后图像,I为放大前图像,a为放大率,方括号为取整操作:I'(x,y) = I([x/a], [y/a])代码如下:1.
2022-05-04 21:58:45 1246
原创 数字图像处理100问—24 伽玛校正(Gamma Correction)
提示:内容整理自:https://github.com/gzr2017/ImageProcessing100WenCV小白从0开始学数字图像处理24 伽玛校正(Gamma Correction)这里是一篇写伽马校正比较好的文章对imori_gamma.jpg进行伽马校正(c=1,g=2.2)!伽马校正用来对照相机等电子设备传感器的非线性光电转换特性进行校正。如果图像原样显示在显示器等上,画面就会显得很暗。伽马校正通过预先增大 RGB 的值来排除显示器的影响,达到对图像修正的目的。由于下式引起非.
2022-05-04 21:53:19 1585
原创 数字图像处理100问—23 直方图均衡化( Histogram Equalization )
提示:内容整理自:https://github.com/gzr2017/ImageProcessing100WenCV小白从0开始学数字图像处理23 直方图均衡化( Histogram Equalization )直方图均衡化是使直方图变得平坦的操作,是不需要计算的平均值、标准差等数据使直方图的值变得均衡的操作。均衡化操作由以下式子定义。S是总的像素数;Zmax是像素点的最大取值(在这里是 255);h(z)表示取值为z的累积分布函数:Z' = Zmax / S * Sum{i=0:z} h(z.
2022-05-04 21:48:14 558
原创 数字图像处理100问—22 直方图操作
提示:内容整理自:https://github.com/gzr2017/ImageProcessing100WenCV小白从0开始学数字图像处理22 直方图操作让直方图的平均值m0=128,标准差s0=52。这里并不是变更直方图的动态范围,而是让直方图变得平坦。可以使用下式将平均值为m标准差为s的直方图变成平均值为m0标准差为s0的直方图:xout = s0 / s * (xin - m) + m0代码如下:1.引入库CV2计算机视觉库import cv2import num.
2022-05-01 07:58:03 1152
原创 数字图像处理100问—21 直方图归一化( Histogram Normalization )
提示:内容整理自:https://github.com/gzr2017/ImageProcessing100WenCV小白从0开始学数字图像处理21 直方图归一化( Histogram Normalization )直方图会存在偏差。比如说,数据集中在 0 处(左侧)的图像全体会偏暗,数据集中在255 处(右侧)的图像会偏亮。如果直方图有所偏向,那么其动态范围( dynamic range )就会较低。为了使人能更清楚地看见图片,让直方图归一化、平坦化是十分必要的。这种归一化直方图的操作被称作灰度.
2022-05-01 07:54:42 3771
原创 数字图像处理100问—20 直方图
提示:内容整理自:https://github.com/gzr2017/ImageProcessing100WenCV小白从0开始学数字图像处理20 直方图直方图显示了不同数值的像素出现的次数。在Matplotlib中有hist()函数提供绘制直方图的接口。代码如下:1.引入库CV2计算机视觉库import cv2import numpy as npimport matplotlib.pyplot as plt2.读入数据img = cv2.imread("imori_dark.
2022-04-30 21:54:16 300
原创 数字图像处理100问—19 LoG 滤波器
提示:内容整理自:https://github.com/gzr2017/ImageProcessing100WenCV小白从0开始学数字图像处理19 LoG 滤波器LoG 即高斯-拉普拉斯( Laplacian of Gaussian )的缩写,使用高斯滤波器使图像平滑化之后再使用拉普拉斯滤波器使图像的轮廓更加清晰。为了防止拉普拉斯滤波器计算二次微分会使得图像噪声更加明显,所以我们首先使用高斯滤波器来抑制噪声。LoG 滤波器使用以下式子定义:LoG(x,y) = (x^2 + y^2 - .
2022-04-30 21:50:28 723
原创 数字图像处理100问—18 Emboss 滤波器
提示:内容整理自:https://github.com/gzr2017/ImageProcessing100WenCV小白从0开始学数字图像处理18 Emboss 滤波器Emboss 滤波器可以使物体轮廓更加清晰,按照以下式子定义: -2 -1 0K = [ -1 1 1 ] 0 1 2代码如下:1.引入库CV2计算机视觉库import cv2import numpy as np2.读入数据img = cv2.imread("imori.j.
2022-04-30 21:45:03 289
原创 数字图像处理100问—17 Laplacian 滤波器
提示:内容整理自:https://github.com/gzr2017/ImageProcessing100WenCV小白从0开始学数字图像处理17 Laplacian 滤波器Laplacian 滤波器是对图像亮度进行二次微分从而检测边缘的滤波器。由于数字图像是离散的,x 方向和 y 方向的一次微分分别按照以下式子计算:Ix(x,y) = (I(x+1, y) - I(x,y)) / ((x+1)-x) = I(x+1, y) - I(x,y)Iy(x,y) = (I(x, y+1) - I(x.
2022-04-30 21:41:37 699
原创 数字图像处理100问—16 Prewitt 滤波器
提示:内容整理自:https://github.com/gzr2017/ImageProcessing100WenCV小白从0开始学数字图像处理16 Prewitt 滤波器Prewitt 滤波器是用于边缘检测的一种滤波器,使用下式定义: (a)纵向 (b)横向 -1 -1 -1 -1 0 1K = [ 0 0 0 ] K = [ -1 0 1 ] 1 1 1 -1 0 1代码如下:.
2022-04-28 20:38:54 3064
原创 数字图像处理100问—15 Sobel 滤波器
提示:内容整理自:https://github.com/gzr2017/ImageProcessing100WenCV小白从0开始学数字图像处理15 Sobel 滤波器Sobel 滤波器可以提取特定方向的边缘,滤波器按下式定义: (a)纵向 (b)横向 1 0 -1 1 2 1K = [ 2 0 -2 ] K = [ 0 0 0 ] 1 0 -1 -1 -2 -1代码如下:1.引入库.
2022-04-28 20:34:07 1990
原创 数字图像处理100问—14 微分滤波器
提示:内容整理自:https://github.com/gzr2017/ImageProcessing100WenCV小白从0开始学数字图像处理14 微分滤波器微分滤波器对图像亮度急剧变化的边缘有提取效果,可以获得邻接像素的差值。 (a)纵向 (b)横向 0 -1 0 0 0 0K = [ 0 1 0 ] K = [ -1 1 0 ] 0 0 0 0 0 0代码如下:1.引.
2022-04-27 23:42:07 1208
原创 数字图像处理100问—13 MAX-MIN 滤波器
提示:内容整理自:https://github.com/gzr2017/ImageProcessing100WenCV小白从0开始学数字图像处理13 MAX-MIN 滤波器MAX-MIN 滤波器使用网格内像素的最大值和最小值的差值对网格内像素重新赋值。通常用于边缘检测。边缘检测用于检测图像中的线。像这样提取图像中的信息的操作被称为特征提取。边缘检测通常在灰度图像上进行。代码如下:1.引入库CV2计算机视觉库import cv2import numpy as np2.读入数据img.
2022-04-27 23:31:34 249
原创 数字图像处理100问—12 Motion Filter
提示:内容整理自:https://github.com/gzr2017/ImageProcessing100WenCV小白从0开始学数字图像处理12 Motion FilterMotion Filter 取对角线方向的像素的平均值,像下式这样定义: 1/3 0 0[ 0 1/3 0 ] 0 0 1/3代码如下:1.引入库CV2计算机视觉库import cv2import numpy as np2.读入数据img = cv2.imread("imor.
2022-04-27 23:25:58 224
原创 数字图像处理100问—11均值滤波器
提示:内容整理自:https://github.com/gzr2017/ImageProcessing100WenCV小白从0开始学数字图像处理11均值滤波器均值滤波器使用网格内像素的平均值。。代码如下:1.引入库CV2计算机视觉库import cv2import numpy as np2.读入数据img = cv2.imread("imori.jpg")H, W, C = img.shape3.均值滤波器K_size = 34.边缘补0pad = K_size /.
2022-04-27 23:22:35 368
原创 数字图像处理100问—10中值滤波(Median filter)
提示:内容整理自:https://github.com/gzr2017/ImageProcessing100WenCV小白从0开始学数字图像处理10中值滤波(Median filter)使用中值滤波器(3x 3大小)进行降噪处理中值滤波器是一种可以使图像平滑的滤波器。这种滤波器用滤波器范围内(在这里是3x3)像素点的中值进行滤波,在这里也采用 Zero Padding。代码如下:1.引入库CV2计算机视觉库import cv2import numpy as np2.读入数据im.
2022-04-26 21:57:57 2683
原创 数字图像处理100问—09高斯滤波(Gaussian Filter)
提示:内容整理自:https://github.com/gzr2017/ImageProcessing100WenCV小白从0开始学数字图像处理09高斯滤波(Gaussian Filter)使用高斯滤波器(3x3 大小,标准差 s=1.3)进行降噪处理高斯滤波器是一种可以使图像平滑的滤波器,用于去除噪声。可用于去除噪声的滤波器还有中值滤波器,平滑滤波器、LoG 滤波器。高斯滤波器将中心像素周围的像素按照高斯分布加权平均进行平滑化。这样的(二维)权值通常被称为卷积核或者滤波器。但是,由于图像的.
2022-04-26 21:52:29 3154
原创 卷积神经网络
卷积神经网络卷积神经网络的两个主要特征。局部连接是CNN通过卷积操作对局部数据进行学习,然后将在更深层将局部学习到的特征组合起来得到数据的全局信息。权值共享可以用较少的参数,训练出更加好的模型。CNN主要包括卷积层、激活层、池化层和全连接层。卷积层:卷积是CNN的核心操心,主要用于提取数据的局部特征,在卷积层中,上一层学习到的特征信息与卷积核相互作用,形成卷积层的输出特征矩阵,每个输出特征矩阵可以包含具有多个输入特征矩阵的卷积,一维卷积的运算步骤如图所示。激活层:根据RELU函数的收敛快,求
2022-04-26 20:28:42 831
原创 数字图像处理100问—08最大池化(Max Pooling)
提示:内容整理自:https://github.com/gzr2017/ImageProcessing100WenCV小白从0开始学数字图像处理08最大池化(Max Pooling)网格内的值不取平均值,而是取网格内的最大值进行池化操作:把大小为 128x128 的图片使用 8x8 的网格做最大池化,代码如下:1.引入库CV2计算机视觉库import cv2import numpy as np2.读入数据img = cv2.imread("imori.jpg")3.平均池化.
2022-04-26 20:10:37 704
原创 数字图像处理100问—07平均池化(Average Pooling)
提示:内容整理自:https://github.com/gzr2017/ImageProcessing100WenCV小白从0开始学数字图像处理06平均池化(Average Pooling)将图片按照固定大小网格分割,网格内的像素值取网格内所有像素的平均值。我们将这种把图片使用均等大小网格分割,并求网格内代表值的操作称为池化(Pooling)。池化操作是卷积神经网络(Convolutional Neural Network)中重要的图像处理方式。平均池化按照下式定义:v = 1/|R| * Sum.
2022-04-26 20:06:39 2492
原创 数字图像处理100问—06减色处理
提示:内容整理自:https://github.com/gzr2017/ImageProcessing100WenCV小白从0开始学数字图像处理06减色处理将图像的值由256X256X256压缩至 4X4X4,即将 RGB 的值只取 {32, 96, 160, 224}。这被称作色彩量化,图像减色处理(色彩量化)后,保留了图像的大量信息而又减少了内存空间的占用。色彩的值按照下面的方式定义:32 ( 0 <= val < 64)96 ( 64 <= val < 12.
2022-04-25 21:07:02 300
原创 数字图像处理100问—05HSV 变换
提示:内容整理自:https://github.com/gzr2017/ImageProcessing100WenCV小白从0开始学数字图像处理05HSV 变换使用 HSV 表示色彩图像的色调反转HSV 即使用**色调(Hue)、饱和度(Saturation)、明度(Value)**来表示色彩的一种方式。色调:将颜色使用0到360度表示,就是平常所说的颜色名称,如红色、蓝色。色相与数值按下表对应:红黄绿青色蓝色品红红0601201802403003.
2022-04-25 20:57:13 607
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人