Python opencv怎么实现医学处理
发表于:2025-02-02 作者:千家信息网编辑
千家信息网最后更新 2025年02月02日,这篇文章主要讲解了"Python opencv怎么实现医学处理",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"Python opencv怎么实现医学处理
千家信息网最后更新 2025年02月02日Python opencv怎么实现医学处理题目描述
这篇文章主要讲解了"Python opencv怎么实现医学处理",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"Python opencv怎么实现医学处理"吧!
题目描述
利用opencv
或其他工具编写程序实现医学处理。
实现过程
# -*- coding: utf-8 -*-'''作者 : 丁毅开发时间 : 2021/5/9 16:30'''import cv2import numpy as np# 图像细化def VThin(image, array): rows, cols = image.shape NEXT = 1 for i in range(rows): for j in range(cols): if NEXT == 0: NEXT = 1 else: M = int(image[i, j - 1]) + int(image[i, j]) + int(image[i, j + 1]) if 0 < j < cols - 1 else 1 if image[i, j] == 0 and M != 0: a = [0]*9 for k in range(3): for l in range(3): if -1 < (i - 1 + k) < rows and -1 < (j - 1 + l) < cols and image[i - 1 + k, j - 1 + l] == 255: a[k * 3 + l] = 1 sum = a[0] * 1 + a[1] * 2 + a[2] * 4 + a[3] * 8 + a[5] * 16 + a[6] * 32 + a[7] * 64 + a[8] * 128 image[i, j] = array[sum]*255 if array[sum] == 1: NEXT = 0 return imagedef HThin(image, array): rows, cols = image.shape NEXT = 1 for j in range(cols): for i in range(rows): if NEXT == 0: NEXT = 1 else: M = int(image[i-1, j]) + int(image[i, j]) + int(image[i+1, j]) if 0 < i < rows-1 else 1 if image[i, j] == 0 and M != 0: a = [0]*9 for k in range(3): for l in range(3): if -1 < (i-1+k) < rows and -1 < (j-1+l) < cols and image[i-1+k, j-1+l] == 255: a[k*3+l] = 1 sum = a[0]*1+a[1]*2+a[2]*4+a[3]*8+a[5]*16+a[6]*32+a[7]*64+a[8]*128 image[i, j] = array[sum]*255 if array[sum] == 1: NEXT = 0 return imagearray = [0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 1, 0, 0, 0]# 显示灰度图img = cv2.imread(r"C:UserspcDesktopvas0.png",0)cv2.imshow("img1",img)# 自适应阈值分割img2 = cv2.adaptiveThreshold(img, 255, cv2.ADAPTIVE_THRESH_MEAN_C, cv2.THRESH_BINARY, 17, 4)cv2.imshow('img2', img2)# 图像反色img3 = cv2.bitwise_not(img2)cv2.imshow("img3", img3)# 图像扩展img4 = cv2.copyMakeBorder(img3, 1, 1, 1, 1, cv2.BORDER_REFLECT)cv2.imshow("img4", img4)contours, hierarchy = cv2.findContours(img4, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_NONE)# 消除小面积img5 = img4for i in range(len(contours)): area = cv2.contourArea(contours[i]) if (area < 80) | (area > 10000): cv2.drawContours(img5, [contours[i]], 0, 0, -1)cv2.imshow("img5", img5)num_labels, labels, stats, centroids = cv2.connectedComponentsWithStats(img5, connectivity=8, ltype=None)# print(stats)s = sum(stats)img6 = np.ones(img5.shape, np.uint8) * 0for (i, label) in enumerate(np.unique(labels)): # 如果是背景,忽略 if label == 0: # print("[INFO] label: 0 (background)") continue numPixels = stats[i][-1] div = (stats[i][4]) / s[4] # print(div) # 判断区域是否满足面积要求 if round(div, 3) > 0.002: color = 255 img6[labels == label] = colorcv2.imshow("img6", img6)# 图像反色img7 = cv2.bitwise_not(img6)# 图像细化for i in range(10): VThin(img7, array) HThin(img7, array)cv2.imshow("img7",img7)# 边缘检测img8 = cv2.Canny(img6, 80, 255)cv2.imshow("img8", img8)# 使灰度图黑白颠倒img9 = cv2.bitwise_not(img8)cv2.imshow("img9", img9)cv2.waitKey(0)
感谢各位的阅读,以上就是"Python opencv怎么实现医学处理"的内容了,经过本文的学习后,相信大家对Python opencv怎么实现医学处理这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!
医学
处理
图像
学习
内容
灰度
面积
作者
区域
就是
工具
思路
情况
文章
时间
更多
知识
知识点
程序
篇文章
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
网络安全技术机制得内容
vs中的服务器资源管理器
千峰互联网科技公司法人
河北智能养老软件开发系统
武汉哪里有软件开发中心
桑日县开展网络安全课进校园活动
有彩易科思网络技术有限公司
数据库为什么更安全
构建数据库开发环境需要哪些步骤
云服务器固定ip对接宽带
1.7万赞的我的世界服务器
塔式服务器 sas硬盘
网络安全教育培训学习的意义
河南省ipfs服务器云空间
南京软件开发技术学校
英语和网络技术的应用
手机玩泰坦陨落怎么加载服务器
中国人民银行软件开发中心
海南软件开发外包价钱
电驴web服务器管理员密码
网站服务器优化
牟平区电商软件开发公司
还原hypixel服务器ip
电子科技大学研究生网络安全专业
服务器如何安全防范
网络安全信息范文
服务器 安全狗 ddos
电信连不上吃鸡服务器
江苏软件开发企业信息查询
青少年网络安全知识素养提升