千家信息网

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 电信连不上吃鸡服务器 江苏软件开发企业信息查询 青少年网络安全知识素养提升
0