本帖最后由 liwanbin 于 2024-2-22 15:29 编辑
本次图像处理思路:
1、首先对原图进行盒装滤波=模糊图像(盒装滤波以后闲了再说方法和思路,这儿不是重点)
2、用原图-模糊图像=差值图像
3、原图+差值图像=锐化增强后图像
特别说明:代码中的变量“C=1”不是一定的,大家可以根据不同的图像适当加大和减小
上代码:
[Python] 纯文本查看 复制代码 import numpy as np
from scipy import signal
from skimage import data,img_as_float,color
from matplotlib import pyplot as plt
#定义字体
plt.rcParams['font.sans-serif']=['SimHei']
#定义灰度图像空间滤波函数
def correl2d(img,window):
s=signal.correlate2d(img,window,mode='same',boundary='fill')
return s
#导入图片,转为灰度图
img1=data.astronaut()
img=img_as_float(color.rgb2gray(img1))
#定义滤波模板函数
window=np.ones((5,5))/(5**2)
#生成5*5滤波结果(得到模糊图像)
img_blur=correl2d(img,window)
#原图-模糊图像=差值
img_edge=img-img_blur
#差值+原图=锐化增强
c=1
img_enhance=img+c*img_edge
#用子图显示结果
plt.subplot(221),plt.title('原图'),plt.imshow(img,cmap='gray')
plt.subplot(222),plt.title('模糊图像'),plt.imshow(img_blur,cmap='gray')
plt.subplot(223),plt.title('差值图像'),plt.imshow(img_edge,cmap='gray')
plt.subplot(224),plt.title('锐化增强图像'),plt.imshow(img_enhance,vmin=0,vmax=1,cmap='gray')
plt.show()
|