python对医学图像的基本处理_python OpenCV 实现图片的医学处理
機器視覺第八次實驗
一、實驗目的
通過OpenCV第八次進行實驗,對圖片進行醫學處理。
二、實驗內容
對圖片進行醫學處理。
三、實驗過程
我使用的是python語言+openCV對圖片進行醫學處理的功能。實驗過程我們需要導入的庫有import cv2;from skimage import morphology, io;import matplotlib.pyplot as plt
1)讀取圖片
我們采用直接讀取圖片并直接將其灰度化,使用imread()函數讀取圖片,
代碼實例:
img = cv2.imread("vas0.bmp",0)
cv2.imshow("img",img)
cv2.waitKey()
圖3.1圖片讀取
2)閾值分割
使用adaptiveThreshold()函數進行計算:
實例代碼:
#閾值分割
th=cv2.adaptiveThreshold(img,255,cv2.ADAPTIVE_THRESH_MEAN_C,cv2.THRESH_BINARY,11,2)
cv2.imshow('th', th)
cv2.waitKey(0)
圖3.2閾值分割后的圖片
3)圖片反色
輸入的代碼:
#圖像反色
img1=th.copy()
cv2.threshold(th,80,255,0,th)for i inrange(0,th.shape[0]):for j in range(0,th.shape[1]):
img1[i,j]= 255-th[i,j]#cv2.imshow("img1",img1)
#cv2.waitKey(0)
plt.imshow(img1,cmap=plt.cm.gray)
plt.axis('off')
plt.show()
圖3.3反色后的圖片
4)圖像擴展
實例代碼:
#圖像擴展
img2= cv2.copyMakeBorder(img1,1,1,1,1,cv2.BORDER_REFLECT)
plt.imshow(img2,cmap=plt.cm.gray)
plt.axis('off')
plt.show()
圖3.4擴展后的圖像
5)去除圖片較小面積的區域并保存
實例代碼:
#去除較小面積的區域
img3= morphology.remove_small_holes(th,200)
plt.imshow(img3,cmap=plt.cm.gray)
plt.axis('off')
plt.show()
圖3.5.1去除較小面積的區域(1)
img3 = morphology.remove_small_holes(th,1000)
plt.imshow(img3, cmap=plt.cm.gray)
plt.axis('off')
plt.savefig("jpg")
plt.show()
圖3.5.2去除較小面積的區域(2)
6)細化圖片
實例代碼:
image = cv2.imread("jpg.png")#實施骨架算法
image1=morphology.skeletonize(image)#顯示結果
plt.imshow(image1)
plt.axis('off')
plt.show()
7)邊緣檢測
實例代碼:
#邊緣檢測
image2= cv2.Canny(image,80,255)
cv2.imshow("image2",image2)
cv2.waitKey(0)
圖3.7邊緣檢測的圖片
8)圖片反色
實例代碼:
#圖片反色
image3=image2.copy()for i inrange(0,image2.shape[0]):for j in range(0,image2.shape[1]):
image3[i,j]= 255-image2[i,j]
cv2.imshow("image3",image3)
cv2.waitKey(0)
圖3.8圖片反色
四、實驗中的錯誤
1)安裝我們所需要的庫,不然會報錯,我首先使用pip install skimage,這樣安裝出來的會報錯;
圖4.1.1安裝scikit-image庫出錯案例
百度了一下以后我發現這個庫的大名是叫scikit-image,我們就使用pip install scikit-image。
圖4.1.2解決安裝scikit-image庫出錯的問題
五、實驗總結
學習了OpenCV的醫學處理技術,提升了自己的能力。
?
總結
以上是生活随笔為你收集整理的python对医学图像的基本处理_python OpenCV 实现图片的医学处理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 小游戏开发者流量变现指南
- 下一篇: webpack的copy-webpack