Albumentations:医学图像数据增强方式

albumentations: 一个快速的图像增强库

  • albumentations 下载
  • albumentations 特点
  • albumentations 使用
    • 图像增强的目标
    • 图像增强
    • albumentations 官网

albumentations 下载

conda activate conda环境  # 不使用conda可以忽略
pip install albumentations
# 上面未成功
pip install -U git+https://github.com/albu/albumentations 

albumentations 特点

  • 基于高度优化的 OpenCV 库实现图像快速数据增强,输入数据是numpy
  • 针对不同图像任务,如分割,检测等,这里重点是医学图像分割

albumentations 使用

图像增强的目标

图像增强目标

图像增强

  • 前期准备
import albumentations as A
# 展示图片
def show(image1,image2):plt.figure()plt.subplot(121)plt.imshow(image1)plt.subplot(122)plt.imshow(image2)plt.show()
  • 图像缩放
image1 = A.Resize(128, 128, p=1.0)(image=image)['image']
image2 = A.RandomCrop(128, 128, p=1.)(image=image)['image']
show(image1,image2)

在这里插入图片描述

  • 水平翻转、垂直翻转
image1 = A.VerticalFlip(p=1.0)(image=image)['image']
image2 = A.HorizontalFlip(p=1.)(image=image)['image']
show(image1, image2)

在这里插入图片描述

  • 自适应直方图均衡、锐化输入图像
image1 = A.CLAHE(p=1.0)(image=image)['image']
image2 = A.Sharpen(p=1.)(image=image)['image']
show(image1, image2)

在这里插入图片描述

  • 添加噪声
image1 = A.Blur(blur_limit=4,p=1.0)(image=image)['image']
image2 = A.MotionBlur(blur_limit=4,p=1.)(image=image)['image']
show(image1, image2)

在这里插入图片描述

  • 改变图像的亮度、对比度和饱和度
image1 = A.ColorJitter(p=1.0)(image=image)['image']
image2 = A.HueSaturationValue(p=1.)(image=image)['image']
show(image1, image2)

在这里插入图片描述

  • 组合和选择
    Compose组合下的变换是要挨着顺序做的,而OneOf组合里面的变换是系统自动选择其中一个来做,而这里的概率参数p是指选定后的变换被做的概率
normal_transforms = A.Compose([A.Resize(width=256 // 2, height=256 // 2, p=1.0),A.HorizontalFlip(p=0.5),A.VerticalFlip(),# 对比度受限直方图均衡# (Contrast Limited Adaptive Histogram Equalization)A.CLAHE(),# 随机旋转 90°A.RandomRotate90(),# 转置A.Transpose(),# 随机仿射变换# A.ShiftScaleRotate(shift_limit=0.0625, scale_limit=0.50, rotate_limit=45, p=.75),A.OneOf([# 模糊A.Blur(blur_limit=3),# 光学畸变A.OpticalDistortion(),# 网格畸变A.GridDistortion(),# 随机改变图片的 HUE、饱和度和值A.HueSaturationValue()],p=1.0)
], p=1.0)
arg = normal_transforms(image=image,mask=mask)
image = arg['image']
mask = arg['mask']
show(image,mask)

在这里插入图片描述

  • 增强方法和pytorch结合
    pytorch模型接受的输入是Tensor格式,而albumentations增强后的数据格式是numpy,添加一个numpy转为Tensor的函数即可
import torchvision.transforms as T
arg = normal_transforms(image=image,mask=mask)
image = arg['image']
mask = arg['mask']
img_tensor = T.ToTensor()(image)
print(type(image),type(img_tensor))
<class 'numpy.ndarray'> <class 'torch.Tensor'>

albumentations 官网

官方文档:链接
Github: https://github.com/albumentations-team/albumentations

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

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

相关文章

医学影像篇

影像组学研究的基本流程知识点 01 准备工作 研究前我们先要做好准备工作&#xff1a;&#xff08;这个准备工作呢就好像小白做菜&#xff09; 最开始&#xff0c;我们往往主动提出或者被提出了一个临床问题&#xff08;临床问题可能是老板直接安排的&#xff0c;也可能是在临…

DICOM医学图像处理:DICOM网络传输

背景&#xff1a; 专栏取名为DICOM医学图像处理原因是&#xff1a;博主是从医学图像处理算法研究时开始接触DICOM协议的。当初认识有局限性&#xff0c;认为DICOM只是一个简单的文件格式约定&#xff0c;简而言之&#xff0c;我当时认为DICOM协议就是扩展名为DCM文件的格式说明…

医学图像处理综述

本文作者 张伟&#xff0c;公众号&#xff1a;计算机视觉life&#xff0c;编辑成员 0、引言 医学图像处理的对象是各种不同成像机理的医学影像&#xff0c;临床广泛使用的医学成像种类主要有X-射线成像 &#xff08;X-CT&#xff09;、核磁共振成像&#xff08;MRI&#xff0…

医学影像分割入门MRI关于T1、T2、Flair等概念

医学影像分割入门MRI关于T1、T2、Flair等概念 相关概念&#xff1a;医学影像分割,是深度学习与医学的结合,通过对医学影像的分析处理,实现对病灶部位的自动分割. MRI MRI是磁共振成像(Megnetic Resonace Imaging)&#xff0c;原理是依据释放的能量&#xff08;也可称信号&am…

医学图像DICOM医学影像文件格式详解

1、 什么是DICOM&#xff1f; DICOM(DigitalImaging andCommunications inMedicine)是指医疗数字影像传输协定&#xff0c;是用于医学影像处理、储存、打印、传输的一组通用的标准协定。它包含了文件格式的定义以及网络通信协议。DICOM是以TCP/IP为基础的应用协定&#xff0c;并…

80个Python练手小项目;AI开发者的总结与反思;B站免费Stable Diffusion视频教程;五问ChatGPT+医学影像 | ShowMeAI日报

&#x1f440;日报&周刊合集 | &#x1f3a1;生产力工具与行业应用大全 | &#x1f9e1; 点赞关注评论拜托啦&#xff01; &#x1f916; 『美团大模型已秘密研发数月』在仅剩一年的窗口期里努力奔跑 5月18日下午&#xff0c;美团内部召开大模型技术分享会&#xff0c;美团…

医学图像分割之TransUNet

目录 一、背景 二、提出问题 三、解决问题 四、网络结构详解 CNN部分&#xff08;ResNet50的前三层&#xff09; transformer部分 U-Net的decoder部分 五、模型性能 开头处先说明下TransUNet的地位&#xff1a;它是第一个将transformer用于U型结构的网络。 一、背景 医…

基于VGGNet乳腺超声图像数据集分析

本人的第一次发文&#xff0c;还在努力学习中&#xff0c;可能有不正确的地方&#xff0c;请各位大神轻喷。 数据集介绍&#xff1a; 乳腺癌是全世界妇女中最常见的死亡原因之一。早期检测有助于减少早期死亡的数量。该数据回顾了使用超声扫描的乳腺癌医疗图像。乳房超声数据集…

Python写一个自动发送直播弹幕的工具,非常好用

昨晚回家&#xff0c;表弟在看LOL直播&#xff0c;看得我气不打一处来&#xff0c;差点就想锤他。 身为程序员的表弟&#xff0c;看直播发弹幕居然还在手动发&#xff0c;当时我就用Python写了一个自动发送弹幕的脚本送给他用。 好了话不多说&#xff0c;我们直接开搞&#xf…

今日作业博客

今天做了一道题目感觉挺不错的&#xff0c;题目是去除重复整数并重新排序。 开始我的想法是先创建一个数组代表一段序列&#xff0c;然后写两个函数&#xff0c;一个去重&#xff0c;一个进行冒泡排序&#xff0c;结果发现实在是过于复杂&#xff0c;所以万般无奈之下只好瞄了一…

通过分析周榜前100名专家的博客文章 手把手教你写出爆款文章

引言 或许你也在用博客来记录自己的学习历程&#xff0c;与别人分享技术。可是有时候你会感觉为什么我的文章也是用心烹饪的&#xff0c;感觉自己文章跟大佬的文章相比质量并不差啊&#xff0c;可是从访问量、点赞数、收藏数、评论数、粉丝数等多个纬度来看都跟大佬差别那么大…

成为顶级博主的秘诀是什么?《乘风者周刊》专访“处女座程序猿”牛亚运

「渡己是一种能力&#xff0c;渡人是一种格局。」 这是“处女座程序猿”牛亚运为自己立下的座右铭。 如今的牛亚运&#xff0c;在国内外十多个平台累计粉丝近100万&#xff0c;全网博客文章浏览量早已超过3000多万&#xff0c;囊括了阿里云乘风者计划专家博主等多个平台顶级博…

2021年度总结 -- 万粉博主的写作荣誉分享,写博客是一种心灵的修行

一、CSDN 的写作经历与荣誉 仅以此文作为 2021 年终总结&#xff0c;顺便跟大家分享一些我的心得经验&#xff0c;希望你我和 CSDN 都越来越好。翻开 2021 CSDN 年度回忆录&#xff0c;有种难以言喻的感觉&#xff0c;有过兴奋、有过开心、有过遗憾&#xff0c;更多的是有过收…

软件测试来喽~这看这博主写的多是一件美事呀

目录 开篇 软件测试模型 V模型 W 模型 X模型 H模型 测试方法 白盒测试 黑盒测试 灰盒测试 黑盒测试方法种类 等价类划分 等价类测试的分类 边界值方法 边界值分析测试方法 决策表方法 决策表的测试方法 开篇 哈喽&#xff01;大家好&#xff0c;这篇我们来看看…

努力打卡 每天学习 不浪费每一天 Day76

白天学数据结构刷题 晚上学Javaweb 备考蓝桥杯 <1> Scanner 可能会超时 改用StreamTokenizer StreamTokenizer scannew StreamTokenizer(new BufferedReader(new InputStreamReader(System.in))); Window <script>//弹窗/*window.alert("123");alert(…

知识星球喊你来交作业了

各位小伙伴,晚上好,忙碌的一周,不知不觉又周末了,提前祝大家周末愉快! 入驻知识星球已经快两周的时间,已有63位朋友加入进来 有些朋友看了看星球,哇,付费的,然后就望而却步,但我们从来不是为了收费而收费的,因为之前的一系列微信群举措并没有多大效果,不希望微信群…

应老师要求发布作业博客

冒泡排序—— 原理&#xff1a;通过外层for循环 i 遍历一遍数组&#xff0c;内层循环 j 实现比较次数&#xff0c;if 判断来使数与后面的数进行比较和交换位置&#xff0c;比较次数逐渐减少&#xff0c;用数组长度来减去外层循环 i 实现比较次数减少的作用&#xff0c;最后输出…

卡塔尔世界杯终局之战,阿根廷VS法国,是老将加冕还是新王登基?

【世界杯】阿根廷VS法国 不知不觉&#xff0c;世界杯已经走到最后的尾声&#xff0c;此前经历的28天&#xff0c;63场比赛皆是铺垫&#xff0c;卢赛尔体育场将会迎来2022卡塔尔世界杯最终的决赛&#xff0c;究竟是梅西球王加冕还是法国卫冕世界杯冠军&#xff0c;今晚23&#x…