利用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实现医学图片处理相关推荐

  1. 【OpenCV+Python实现医学影像拼接(一)】

    ** OpenCV+Python实现医学影像拼接(一) ** 内容仅供参考 首先是准备拼接的图片,(由于环境原因,本人裁剪的) 原图片为 我的思路是一二先拼接,三四再拼接,拼接后图片如下: 与原图像对 ...

  2. OpenCV+python:读取图片

    1,源码: import cv2 as cv #导入OpenCV库 import numpy as np #导入numpy科学计算包 print("--------- Python + Op ...

  3. OpenCV+python:读取图片和视频详细信息

    1,源代码 import cv2 as cv import numpy as npdef video_demo(): #定义读取视频信息的函数capture = cv.VideoCapture(0) ...

  4. python如何实现找图_利用OpenCV和Python实现查找图片差异

    使用OpenCV和Python查找图片差异 flyfish 方法1 均方误差的算法(Mean Squared Error , MSE) 下面的一些表达与<TensorFlow - 协方差矩阵&g ...

  5. python 图片base64 编解码,转换成Opencv,PIL.Image图片格式

    Python PIL.Image和OpenCV图像格式相互转换 二进制打开图片文件,base64编解码转成Opencv格式: # coding: utf-8 import base64 import ...

  6. python读取.nii.gz文件并展示医学图片

    python读取.nii.gz文件并展示医学图片 注意细节 我的数据集格式 展示图片 补充 注意细节 第一次做医学图像相关的内容,拿到数据集却不会用,搞了半天终于可以打开显示了,必须写一个给跟我一样的 ...

  7. python 找出图片中的差异点,python opencv对目录下图片进行去重的技巧

    使用python opencv对目录下图片进行去重的方法 版本: 平台:ubuntu 14 / I5 / 4G内存 python版本:python2.7 opencv版本:2.13.4 依赖: 如果系 ...

  8. python opencv显示图片一闪而过_解决Opencv+Python cv2.imshow闪退问题

    Opencv+Python cv2.imshow闪退 # 读入原始图像 origineImage = cv2.imread('./pic/6.jpeg') # 图像灰度化 # image = cv2. ...

  9. python图片转视频加特效_使用Python opencv实现视频与图片的相互转换

    因为最近要经常转换数据集进行实验,因此记录一下. 1.视频转图片 即为将视频解析为一帧一帧的图片: import cv2 vc=cv2.VideoCapture("/home/hqd/Pyc ...

  10. OpenCV+Python 彩色图片的 BGR、灰度图、HSV分量图显示的程序

    OpenCV+Python 彩色图片的 BGR.灰度图.HSV分量图显示的程序 介绍 OpenCV+Python 使用openCV中的split()函数和 cvtColor()函数提取一张彩色图片的B ...

最新文章

  1. 信息理论基础 周炯槃 常迥
  2. 莫利定理的超直观演示!
  3. 【HDU - 1022】Train Problem I (栈模拟,水题,思维)
  4. 467python教程_Magnus Lie Hetland的《Python基础教程(第3版)》自学笔记(持续更新中)...
  5. 十.激光SLAM框架学习之LeGO-LOAM框架---算法原理和改进、项目工程代码
  6. Python网络编程基础
  7. 化工企业数据分析平台项目之应收款分析
  8. python中的append()有什么功能_在python中append()函数能做什么
  9. Java 并发 —— 读写锁(ReadWriteLock)
  10. asp.net搜索关键词高亮显示函数
  11. 关于联想键盘,如何去除fn 键 联想官方解决方法
  12. 常用的网络操作系统有哪些?它们各具有什么特点?
  13. 《弃子长安》第十六章 道阳心经
  14. 2、图片亮度,对比度,饱和度,明度调整 transforms.ColorJitter(brightness=0, contrast=0, saturation=0, hue=0)
  15. Java多线程系列--“JUC集合”05之 ConcurrentSkipListMap
  16. 〖Python接口自动化测试实战篇⑦〗- 接口抓包工具 Fiddler 的使用
  17. 在EXCEL中插入超级链接
  18. 计算机平均值的快捷键,excel求平均值快捷键
  19. HTML+CSS+JS实现3D爱心跳动特效
  20. html5文本框里插图片文字,word应用教程:在文本框内插入图片

热门文章

  1. win7电脑访问共享提示“您可能没有权限使用网络资源”的解决技巧--win10专业版
  2. 39.JavaScript中Promise的基本概念、使用方法,回调地狱规避、链式编程
  3. 联想用u盘重装系统步骤_联想电脑怎样重新安装系统方法步骤详细教程 - 系统家园...
  4. java弹跳小球程序_用java实现跳动的小球示例代码
  5. 服务器的日常维护需要做什么?
  6. 什么是视距传播(LOS propagation)及如何验证微波链路是否具有清晰的视线
  7. chmod 权限详细解析(rw)
  8. 互联网产品经理职责及所需能力
  9. java枚举后面括号是什么意思_[Java] Java自定义枚举常量后括号的作用
  10. c++的两个冒号::四个点是什么意思,什么作用呢?