基于OpenCV对胸部CT图像的预处理

1 . 传作灵感

胸部CT中所包含的噪声比较多,基于OpenCV简单的做一些处理,降低后续模型训练的难度。

2. 图像的合成

在语义分割任务中有的时候需要将原图(imput)和标注数据(groudtruth)合成一幅图像,观察图像分割的效果,涉及的代码如下:

import matplotlib.pyplot as plt
import os
import pandas as pd
from scipy.ndimage.interpolation import zoom
from PIL import Image
from matplotlib import image
import matplotlib.pyplot as pltimg=Image.open('dataset/train_image/1.3.6.1.4.1.14519.5.2.1.6279.6001.109002525524522225658609808059_66.jpg',)
mask= Image.open('dataset/train_mask/1.3.6.1.4.1.14519.5.2.1.6279.6001.109002525524522225658609808059_66.jpg')plt.subplot(2, 2, 1)
plt.imshow(img,cmap='bone')
plt.subplot(2, 2, 2)
plt.imshow(mask,cmap='bone')
# 图像融合显示
plt.subplot(2, 2, 3)
#原图以0.6的比例加入,mask以0.4的比例加入
plt.imshow(img, alpha=0.6,cmap='bone')
plt.imshow(mask, alpha=0.4,cmap='gray')
plt.show()

合成的效果如图所示:

还有一种方法使用Image.blend(img, mask, 0.5)函数,具体代码如下:

img=Image.open('dataset/train_image/1.3.6.1.4.1.14519.5.2.1.6279.6001.109002525524522225658609808059_66.jpg',)
mask= Image.open('dataset/train_mask/1.3.6.1.4.1.14519.5.2.1.6279.6001.109002525524522225658609808059_66.jpg')
#
img = img.convert('L')
mask = mask.convert('L')img.show()
mask.show()con = Image.blend(img, mask, 0.5)
con.show()

合成的效果如下:

3. 高斯滤波

img =cv.imread('dataset/train_image/1.3.6.1.4.1.14519.5.2.1.6279.6001.109002525524522225658609808059_66.jpg', cv.IMREAD_GRAYSCALE)
mask = cv.imread('dataset/train_mask/1.3.6.1.4.1.14519.5.2.1.6279.6001.109002525524522225658609808059_66.jpg', cv.IMREAD_GRAYSCALE)
cv.imshow("img",img)
# 高斯滤波
img_Gauss=cv.GaussianBlur(img,(7,7),0,0)
dst2 = cv.GaussianBlur(img, (9, 9), 0, 0)
cv.imshow("img_Gauss", img_Gauss)

效果如下:

   

3.中值滤波

img_median = cv.medianBlur(img,5)
cv.imshow("img_median", img_median)

4.适应阈值滤波

#自适应阈值滤波
t2,img_ostu = cv.threshold(img_median, 0,255, cv.THRESH_OTSU)
t2,img_ostu = cv.threshold(img_median, 0,255,cv.THRESH_BINARY+cv.THRESH_OTSU)
cv.imshow("img_ostu", img_ostu)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/324201.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

陪玩系统APP小程序H5音视频社交系统陪玩系统源码,陪玩app源码,陪玩源码搭建陪玩社交系统开发(现成,可定制)线下陪玩系统项目开发搭建

线下陪玩系统项目的设计 在需求分析完成后,接下来进行系统设计。系统设计主要包括以下几个部分: 1. 数据库设计:根据需求分析的结果,设计数据库结构,包括用户信息表、服务信息表、订单信息表等。 2. 界面设计&#…

「 网络安全常用术语解读 」SBOM主流格式CycloneDX详解

CycloneDX是软件供应链的现代标准。CycloneDX物料清单(BOM)可以表示软件、硬件、服务和其他类型资产的全栈库存。该规范由OWASP基金会发起并领导,由Ecma International标准化,并得到全球信息安全界的支持,如今CycloneD…

postman工具使用

一、配置每个接口都有公共的请求头 1.1 新建一个collect集合 my test 1.2 在pre-request script 输入配置 pm.request.addHeader("uid:24011"); pm.request.addHeader("version:2.0.0"); pm.request.addHeader("timezone:8"); pm.request.ad…

如何在 CentOS 上安装并配置 Redis

如何在 CentOS 上安装并配置 Redis 但是太阳,他每时每刻都是夕阳也都是旭日。当他熄灭着走下山去收尽苍凉残照之际,正是他在另一面燃烧着爬上山巅散烈烈朝晖之时。 ——史铁生 环境准备 本教程将在 CentOS 7 或 CentOS 8 上进行。确保你的系统已更新到最…

(三十九)第 6 章 树和二叉树(二叉树的三叉链表存储)

1. 背景说明 2. 示例代码 1) errorRecord.h // 记录错误宏定义头文件#ifndef ERROR_RECORD_H #define ERROR_RECORD_H#include <stdio.h> #include <string.h> #include <stdint.h>// 从文件路径中提取文件名 #define FILE_NAME(X) strrchr(X, \\) ? strrc…

Github新手入门使用方法

**存在问题&#xff1a;**新手如何快速入门github&#xff0c;能够下载开源文件&#xff0c;并且修改后更新远程github仓库&#xff1b; 解决方案&#xff1a; 参考&#xff1a; http://www.360doc.com/content/24/0301/12/60419_1115656653.shtml https://blog.csdn.net/gongd…

经开区创维汽车车辆交接仪式顺利举行,守护绿色出行助力低碳发展

5月10日&#xff0c;“创维新能源汽车进机关”交车仪式于徐州顺利举行&#xff0c;20辆创维EV6 II正式交付经开区政府投入使用。经开区陈琳副书记、党政办公室副主任张驰主任、经开区公车管理平台苑忠民科长、创维汽车总裁、联合创始人吴龙八先生、创维汽车营销公司总经理饶总先…

ZOC8 for Mac v8.08.1激活版:卓越性能的SSH客户端

在远程连接和管理的世界中&#xff0c;ZOC8 for Mac以其卓越的性能和丰富的功能&#xff0c;成为了众多专业人士的首选SSH客户端。它支持SSH1、SSH2、Telnet、Rlogin、Serial等多种协议&#xff0c;让您轻松连接到远程服务器。ZOC8拥有简洁直观的界面和强大的功能设置&#xff…

【Java基础】Maven继承

1. 前言 Maven 在设计时&#xff0c;借鉴了 Java 面向对象中的继承思想&#xff0c;提出了 POM 继承思想。 2. Maven继承 当一个项目包含多个模块时&#xff0c;可以在该项目中再创建一个父模块&#xff0c;并在其 POM 中声明依赖&#xff0c;其他模块的 POM 可通过继承父模…

streamlit通过子目录访问

运行命令&#xff1a; streamlit hello 系统默认使用8501端口启动服务&#xff1a; 如果想通过子目录访问服务&#xff0c;可以这么启动服务 streamlit hello --server.baseUrlPath "app" 也可以通过以下命令换端口 streamlit hello --server.port 9999 参考&…

贪心算法----最大数

今日题目&#xff1a;leetcode179------点击跳转题目 分析&#xff1a; 要把这些数组组成最大的数&#xff0c;首先我们把数字转化为字符串&#xff0c;根据自定义的排序规则把这些字符串字数排列&#xff0c;再用一个字符串接受这些字符串数字拼接成最大的字符串数字 排序规则…

react引入阿里矢量库图标

react引入阿里矢量库图标 登录阿里矢量库&#xff0c;将项目所需的图标放一起 react项目中新建文件夹MyIcon.js 3. 在页面中引入&#xff0c;其中type为图标名称

网络流 24 题」数字梯形 【费用流、拆点】

网络流 24 题」数字梯形 思路 对于规则 1 1 1&#xff0c;要求的是点不相交且边不相交&#xff0c;我们可以把边的容量设置成 1 1 1&#xff0c;把点拆分成入点和出点&#xff0c;将其内部的容量设置成 1 1 1&#xff0c;这样就可以限制点的流量。 把相应的点之间的边的费用…

T型槽地轨承载力是如何连接整个制造过程的强力桥梁(北重公司设计)

T型槽地轨承载力的定义和计算 T型槽地轨是一种用于工业设备运输和装配的关键组件。它由世界上各行各业的生产商广泛采用&#xff0c;其有效的承载力使其成为连接整个制造过程的强力桥梁。本文将介绍T型槽地轨的承载力以及相关的设计要点和应用。 承载力的定义和计算 承载力是…

语义分割——脑肿瘤图像分割数据集

引言 亲爱的读者们&#xff0c;您是否在寻找某个特定的数据集&#xff0c;用于研究或项目实践&#xff1f;欢迎您在评论区留言&#xff0c;或者通过公众号私信告诉我&#xff0c;您想要的数据集的类型主题。小编会竭尽全力为您寻找&#xff0c;并在找到后第一时间与您分享。 …

Rust里的Fn/FnMut/FnOnce和闭包匿名函数关系

闭包&#xff08;英语&#xff1a;Closure&#xff09;&#xff0c;又称词法闭包&#xff08;Lexical Closure&#xff09;或函数闭包&#xff08;function closures&#xff09;&#xff0c;是引用了自由变量的函数。这个被引用的自由变量将和这个函数一同存在&#xff0c;即使…

浅谈如何自我实现一个消息队列服务器(7)——编写服务器部分

文章目录 一、编写服务器代码1.1、分析一个服务器应具备的功能1.1.1、成员变量1.1.2、对外提供的接口 一、编写服务器代码 再次拿出这张图&#xff0c;前面我们已经将重要概念&#xff1a;VirtualHost、exchange、msgQueue、message、binding 都实现了&#xff0c;此时就可以开…

HTTP 1.1 与 HTTP 1.0

什么是HTTP HTTP 就是一个 超文本传输协议 协议 : 双方 约定 发送的 域名 数据长度 连接(长连接还是短连接) 格式(UTF-8那些) 传输 :数据虽然是在 A 和 B 之间传输&#xff0c;但允许中间有中转或接力。 超文本:图片、视频、压缩包,在HTTP里都是文本 HTTP 常见状态码 比如 20…

网络1--通信过程的理解

1.封装与解包 通信的过程就是不断的封装和解包的过程 封装即就是按照“应用”“传输” “网络” “链路” 层&#xff0c;封装给每一层都加上相应的包头&#xff08;每一层都有协议&#xff0c;&#xff09;解包就是接受到的包文被一层层去掉相对应的包头。 任何一层的协议都…

【AI+换脸换装】从OpenAI 探索色情露骨内容领域浅聊AI换脸换装

5月9日消息&#xff0c;据外电报道&#xff0c;OpenAI 周三发布了文档草案&#xff0c;阐述了它希望 ChatGPT 及其其他人工智能技术如何运作。冗长的Model Spec 文件的一部分透露&#xff0c;该公司正在探索进军色情和其他露骨内容领域。 看完这个&#xff0c;心里有点惊讶&am…