图像空域增强:卷积运算法
卷积增强法
卷积运算通过对图像区域像素集合进行处理得到增强效果。例如,我们将在图像上尝试平均滤波器。一个3x3
平均滤波器内核如下所示:
K=19[111111111]K = \frac{1}{9} \begin{bmatrix} 1 & 1 & 1 \\ 1 & 1 & 1 \\ 1 & 1 & 1 \end{bmatrix}K=91⎣⎡111111111⎦⎤
Z=19∑i=19ZiZ = \frac{1}{9} \sum_{i=1}^9 Z_iZ=91i=1∑9Zi
不同的卷积核可以实现不同的增强效果:
- 平滑:线性、非线性
- 锐化:线性、非线性
线性平滑(均值滤波)
import cv2 as cv
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt
img = cv.imread('./images/xxx.png')
img_noise = img + np.random.normal(0, 128, img.shape)
img =cv.cvtColor(img, cv.COLOR_BGR2RGB)
kernel = np.ones((5,5),np.float32)/25
filted_img = cv.filter2D(img,-1,kernel)
测试用例:
非线性平滑(中值滤波)
median = cv.medianBlur(img, 5)
线性锐化滤波
实现线性锐化滤波的卷积核中心系数应为正值,而周围的系数应为负值,计算相邻像素间灰度的差值。当使用3×3核时,中间为8,而其余系数为-1,这样所有系数之和为0。当图像中灰度值是常数或变化很小时,其卷积输出为0或很小,也就是输出图像的平均灰度值变为0,这样输出图像中就会有一部分像素的灰度值小于0。在图像处理中一般只考虑正的灰度值,所以还需要将输出图像的灰度值范围通过变换控制在[0, Gmax]中。
锐化滤波的效果可用原始图像f(x, y)减去平滑图像L(x, y)得到。更进一步,如果将原始图像乘以一个放大系数A再减去平滑图像就能实现高频提升滤波。
kernel = np.ones((3,3),np.float32)*-1
kernel[1, 1] = 8.0
sharpen_img = cv.filter2D(img,-1,kernel)
非线性锐化滤波
线性锐化滤波计算了中间像素和相邻像素间灰度的差值,相当于进行了一个微分运算。在图像处理中,最常用的微分方法是利用梯度的方法。对于一个连续函数f(x, y),其梯度是一个矢量,由分别沿x和y方向计算微分得到:
∇f(x,y)=[∂f∂x∂f∂y]=[Gx,Gy]\nabla f(x,y) = \Big[\frac{\partial f}{\partial x} \frac{\partial f}{\partial y}\Big] = [G_x, G_y]∇f(x,y)=[∂x∂f∂y∂f]=[Gx,Gy]
常用的微分方法:
1.直接微分
Gx=f(x+1,y)−f(x,y)G_x = f(x+1, y) - f(x, y)Gx=f(x+1,y)−f(x,y)
Gy=f(x,y+1)−f(x,y)G_y = f(x, y+1) - f(x, y)Gy=f(x,y+1)−f(x,y)
2.交叉微分
Gx=f(x+1,y+1)−f(x,y)G_x = f(x+1, y+1) - f(x,y)Gx=f(x+1,y+1)−f(x,y)
Gy=f(x+1,y)−f(x,y+1)G_y = f(x+1, y) - f(x,y+1)Gy=f(x+1,y)−f(x,y+1)
常用梯度幅度计算方法:
- L2范数(欧氏距离)
∣∇f(2)∣=mag(∇f)=Gx2+Gy2\Big|\nabla f_{(2)}\Big| = mag(\nabla f) = \sqrt{G_x^2 + G_y^2}∣∣∣∇f(2)∣∣∣=mag(∇f)=Gx2+Gy2 - L1范数(城区距离)
∣∇f(1)∣=∣Gx∣+∣Gy∣\Big|\nabla f_{(1)} \Big| = |G_x| + |G_y|∣∣∣∇f(1)∣∣∣=∣Gx∣+∣Gy∣ - 棋盘距离
∣∇f∣=max{Gx,Gy}\Big|\nabla f \Big| = max\{G_x, G_y\}∣∣∣∇f∣∣∣=max{Gx,Gy}
img_gray = cv.cvtColor(img, cv.COLOR_RGB2GRAY)
# 直接微分
kernel_x = np.array([[-1, 1],[0, 0]])
kernel_y = np.array([[1, 0], [-1, 0]])
gradient_x = cv.filter2D(img_gray, -1, kernel_x)
gradient_y = cv.filter2D(img_gray, -1, kernel_y)
# L2范数
gradient = np.clip(np.sqrt(np.power(gradient_x, 2) + np.power(gradient_y, 2)), 0, 255)
图像空域增强:卷积运算法相关推荐
- 数字图像处理笔记-02(图像空域增强技术及联合运用)
数字图像处理笔记-02(图像空域增强技术及联合运用) (一) 图像增强 1.1 基本概念 由于图像在传输或者处理过程中会引入噪声或使图像变模糊,从而降低了图像质量,甚至淹没了特 征,给分析带来了困难. ...
- 一种简单快速有效的图像暗部增强/亮度均衡算法
2020/10/27更新:之前为克服光晕效应尝试过引导滤波,惜哉其他地方犯了个小错误以致未达到目标,处理的结果虽然保边但却过于模糊.后期修正之后再次尝试便得到了预期的效果.现将引入了引导滤波去光晕的程 ...
- 图像空域增强技术及联合运用
实验内容: 1.从硬盘中读取需进行增强的人体骨骼图像; 2.求原图像的Laplacian变换,对图像进行锐化处理; 3.用Sobel算子计算原图像的梯度图像; 4.图像的算术运算,包括加和乘; 5.图 ...
- 2.4 Python图像的空域增强处理-空域滤波
2.4 Python图像的空域增强处理-空域滤波 文章目录 2.4 Python图像的空域增强处理-空域滤波 1 算法原理 2 代码 3 效果 1 算法原理 空域滤波(线性平滑滤波器.线性锐化滤波器. ...
- 2.2 Python图像的空域增强处理-算术运算
2.2 Python图像的空域增强处理-算术运算 文章目录 2.2 Python图像的空域增强处理-算术运算 1 算法原理 2 代码 3 效果 1 算法原理 1)加法与减法. 假设 f(x,y),g( ...
- 车辆摄像头夜晚场景图像ISP增强算法
车辆摄像头夜晚场景图像ISP增强算法 输入输出接口 Input: (1)图像视频分辨率(整型int) (2)图像视频格式(RGB,YUV,MP4等) (3)摄像头标定参数(中心位置(x,y)和5个畸变 ...
- Landslide detection from an open satellite imagery 使用注意力增强卷积神经网络从开放的卫星图像和数字高程模型数据集检测滑坡
2020.01 武汉大学 论文下载地址:https://sci-hub.st/10.1007/s10346-020-01353-2 目录 Landslide detection from an ope ...
- 2.3 Python图像的空域增强处理-直方图修正
2.3 Python图像的空域增强处理-直方图修正 文章目录 2.3 Python图像的空域增强处理-直方图修正 1 算法原理 2 代码 3 效果 1 算法原理 直方图均衡化算法和直方图规定化 对于灰 ...
- 2.1 Python图像的空域增强处理-灰度映射
2.1 Python图像的空域增强处理-灰度映射 文章目录 2.1 Python图像的空域增强处理-灰度映射 1 算法原理 2 代码 3 效果 空域增强处理,包括给定变化曲线的灰度映射(求反.动态范围 ...
- matlab血管图像增强算法,基于Hessian特征的视网膜血管图像的增强滤波算法
第30卷第3期 2013年6月 Vol.30 No.3 Jun.,2013 华 东 交 通 大 学 学 报 Journal of East China Jiaotong University 文章编号 ...
最新文章
- CCNP学习笔记(6)
- 11 个新项目入选 CNCF Sandbox | 云原生生态周报 Vol. 56
- 农保和社保的区别有哪些
- fileinput 图片上传
- K8S 利用Rinetd实现Service负载均衡
- 两种方式实现js, ajax跨域
- 福建职称计算机评聘任,职称聘任工作的有关补充规定(试行)
- 延迟初始化Spring Bean的几种方式
- oracle tcp 上限,操作系统用户最大进程数限制maxuproc
- Man vs. AI – Six Fields Where Artificial Intelligence Are Surpassing Human Intelligence
- rocketmq同步消息,异步消息
- 一个简单的完全信息动态博弈的解答
- android 多媒体相册,朵朵多媒体相册免费版
- 家用电冰箱3C认证检测标准
- 熊出没机器人光头强_熊出没中光头强太迂腐,这4种物品都能让他身价过亿,却弃而不用...
- Duplicate showFileChooser result
- CSS自定义变量,白天变黑夜示例
- 大吉大利今晚吃鸡——枪械篇
- QLineEdit文件名正则表达式
- seedlab:V** tunneling The Container Version