日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

Opencv+Python实现医学图片处理

發布時間:2023/12/16 python 50 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Opencv+Python实现医学图片处理 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

利用Opencv+python實現下圖的處理

一、實驗目的

原圖

處理結果如下圖

二、實現代碼

import cv2 import numpy as np from skimage import morphologyimg1 = cv2.imread("F:\\vas1.bmp") cv2.imshow('img1',img1) #自適應閾值分割 gray= cv2.cvtColor(img1, cv2.COLOR_BGR2GRAY) img2=cv2.adaptiveThreshold(gray,255,cv2.ADAPTIVE_THRESH_MEAN_C,cv2.THRESH_BINARY,15,3) cv2.imshow('img2',img2) #反色 def inverse_color(img):height,width = img.shapeimg2 = img.copy()for i in range(height):for j in range(width):img2[i,j] = (255-img[i,j])return img2 img3 = inverse_color(img2) cv2.imshow('img3',img3) #對圖像進行擴展 img4 = cv2.copyMakeBorder(img3,1,1,1,1,cv2.BORDER_REFLECT) cv2.imshow('img4',img4) #去除小于指定尺寸的區域 img5 = morphology.remove_small_holes(img2,150) img_tmp1 = np.uint8(img5)*255 cv2.imshow('img5',inverse_color(img_tmp1)) img6 = morphology.remove_small_holes(img5,1000) img6 = np.uint8(img6)*255 img7 = inverse_color(img6) cv2.imshow('img6',inverse_color(img6))#圖像細化 img = img7.copy() img = cv2.cvtColor(img,cv2.COLOR_GRAY2RGB) gray= cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) img=cv2.adaptiveThreshold(gray,1,cv2.ADAPTIVE_THRESH_MEAN_C,cv2.THRESH_BINARY,15,3) img_sk = morphology.skeletonize(img) img = np.uint8(img_sk)*255 cv2.imshow('img8',inverse_color(img))#邊界提取 img9 = cv2.Canny(inverse_color(img6),75,200) cv2.imshow('img9',img9) cv2.imshow('img10',inverse_color(img9)) cv2.waitKey() cv2.destroyAllWindows()

三、運行結果如下

局部自適應動態閾值分割

反色

擴展

去除小的區域

再次去除

邊緣提取

反色

四、遇到的問題及解決辦法

(1)在運行過程中出現錯誤,如下圖

解決方法:
在進行自適應閾值分割時圖像不是8位灰度圖像,把圖像改為彩色圖。
gray= cv.cvtColor(src, cv.COLOR_BGR2GRAY)

(2)在進行圖片細化時,出現錯誤

解決方法:
將cv2.adapttiveThreshold()函數中的255改成1,因為skeletonize需要的是0和1,而不是0和255

(3)在顯示經過scimage的morphology模塊進行去除某些區域時,無法顯示去除后的圖像
解決辦法:
這種情況是因為在進行去除時,得到的結果是一個boolean數組,要轉換為0-255才能顯示,img6 = np.uint8(img6)*255可將數據從uint16轉換為uint8,把0-1轉換為0-255

(4)在利用morphology.skeletonize()進行圖片的細化時,出現錯誤,提取結果如下

正確結果應該如下

這個問題還未解決

總結

以上是生活随笔為你收集整理的Opencv+Python实现医学图片处理的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。