简述:为刚雷克斯《数字图像处理》中全身骨骼扫描图图像增强过程的实现
import cv2 as cv
import matplotlib.pyplot as plt
import numpy as np
plt.figure(figsize=(40,40))
img1= cv.imread('./skeletonInput.tif',0)
plt.subplot(141)
plt.title('原图像A')
plt.imshow(img1,cmap='gray')
img2 = cv.Laplacian(img1,cv.CV_64F)
img2 = 255*(img2 - img2.min())/(img2.max() - img2.min())
plt.subplot(142)
plt.title('laplacian 算子的滤波图像B')
plt.imshow(img2,cmap='gray')
img3 = img1+img2
img3 = 255*(img3 - img3.min())/(img3.max() - img3.min())
plt.subplot(143)
plt.title('A+B图像C')
plt.imshow(img3,cmap='gray')
a = cv.Sobel(img3,cv.CV_64F,1,0)
b = cv.Sobel(img3,cv.CV_64F,0,1)
img4 = np.clip(np.abs(a) + np.abs(b),0,255)
plt.subplot(144)
plt.title('Sobel 梯度幅值图像D')
plt.imshow(img4,cmap='gray')
plt.savefig('outimg1.png')
plt.show()
plt.figure(figsize=(40,40))
img5 = cv.medianBlur(np.uint8(img4), 5)
plt.subplot(141)
plt.title('5*5 均值平滑E')
plt.imshow(img5,cmap='gray')
img6 = img3*img5
img6 = 255*(img6 - img6.min())/(img6.max() - img6.min())
plt.subplot(142)
plt.title('C*E图像F')
plt.imshow(img6,cmap='gray')
img7 = img1+img6
img7 = 255*(img7 - img7.min())/(img7.max() - img7.min())
plt.subplot(143)
plt.title('A+F图像G')
plt.imshow(img7,cmap='gray')
img8 = 1*((img7) **0.5)
plt.subplot(144)
plt.title('幂率运算图像G')
plt.imshow(img8,cmap='gray')
plt.savefig('outimg2.png')
plt.show()



