贵州省网站建设选哪家,网页制作软件属于什么软件,wordpress设置标题字体,特色直播app下载医学图像处理 opencv批量分片高像素图像病理图像色彩特征提取病理图像细微特征提取自动数据标注分类场景下的医学图像分析分割场景下的医学图像分析检测场景下的医学图像分析 , i ] k 8 * I
opencv批量分片高像素图像
医学图像通常是大像素#xff08;1920x1080… 医学图像处理 opencv批量分片高像素图像病理图像色彩特征提取病理图像细微特征提取自动数据标注分类场景下的医学图像分析分割场景下的医学图像分析检测场景下的医学图像分析 , i ] k 8 * I
opencv批量分片高像素图像
医学图像通常是大像素1920x1080、超大像素4096x2160。
深度学习输入数据尺寸通常是 640x640、32x32。
所以我们会切分医学图像, 变成小像素片, 并对每一个方片识别或预测。
星辰图和病理图类似
星辰和病灶细胞一样可能分布在图像各个位置也可以集中在图像上的某个区域而且都非常小可能不到图的1% 方片尺寸最小是 1x1, 一般我们用 50x50。
怎么实现这种分割呢
选定截取区域截取保存
# 截取图像[高的起点:高的终点宽的起点:宽的终点]并保存
cv2.imwrite(os.path.join(path, 1.jpg), imgcopy[0:1200,0:1200]每个方片尺寸为 50*50左上角第一个被切分的方片索引为 imgcopy[:50, :50]紧接着左数第二个方片的索引为 imgcopy[:50,50:100]第三个方片索引为 imgcopy[:50,100:150]第一行所有方片被表示为 ingcopy[:50, x:x50]。
只要在宽度上循环每次让宽的起点增加50宽的终点增加50就可以做第一行的截取。
imgcopy cv2.cvtColor(img, cv2.COLOR_BGR2RGB).copy # 每次分割前获取完整的原始图像imgheight imgcopy.shape[0] # 获取高度
imgwidth imgcopy.shape[1] # 获取宽度patch_height 50 # 方片尺寸50*50
patch_weight 50for y in range(0, imgheight, patch_height): # y 是高的起点for x in range(0, imgwidth, patch_weight): # x 是宽的起点if patch_height imgheight or patch_weight imgwidth: # 边界判断如果图片小于截取尺寸取消break y_ y patch_heightx_ x patch_weightif imgheight y_ and imgwidth x_: # 如果图片已经被截取到连50都到不得了这部分就舍去不影响patch imgcopy[y:y_, x:x_]cv2.imwrite(os.path.join(path, xstr(x)_str(x_)ystr(y)_str(y_).jpg), patch)# 保存截取图像cv2.rectangle(imgcopy, (x,y), (x_,y_),(255,255,255),2) # 把刚刚截取区域在原图上用白色矩形圈出来分割后。读取大批量文件
def load_images_from_folder(folder): # 批量读取文件夹中的图片images [] # 把所有方片保存在列表for filename in os.listdir(folder):img cv2.imread(os.path.join(folder, filename))if img is not None:images.append(img)return imagesimages load_images_from_folder(分割文件夹路径)完整代码
import cv2
import os
import matplotlib.pyplot as pltpath r文件夹路径
img cv2.imread(os.path.join(path, 图片名字.jpg))if img is None:print(opencv读取图像时没有成功也不会报错)else:print(读取图像成功)imgcopy cv2.cvtColor(img, cv2.COLOR_BGR2RGB).copy # 将BGR颜色空间的图像转换为RGB颜色空间并创建一个副本以供后续使用。每次分割前获取完整的原始图像def extract_images_from_folder(folder):对图像进行批量分片对一个文件夹中所有的图像进行分片# 图像导入for filename in os.listdir(folder):img cv2.imread(os.path.join(folder, filename))if img is not None:# 如果导入成功则创建该图片专属的文件夹subfolder os.path.join(PATH,filename.split(.)[0])if os.path.exists(subfolder):print(folder exists)else:os.mkdir(subfolder)# 开始分割所有被分割出的切片都位于该图片的文件夹中imgcopy cv2.cvtColor(img, cv2.COLOR_BGR2RGB).copy()imgheight imgcopy.shape[0]imgwidth imgcopy.shape[1]patch_height 50patch_weight 50for y in range(0, imgheight, patch_height):for x in range(0, imgwidth, patch_weight):if patch_height imgheight or patch_weight imgwidth:breaky_ y patch_heightx_ x patch_weightif imgheight y_ and imgwidth x_:patch imgcopy[y:y_, x:x_]# 将每一张图像保存到单独的文件夹cv2.imwrite(os.path.join(subfolder,str(filename.split(.)[0])xstr(x)_str(x_)ystr(y)_ str(y_) .jpg), patch)# 保存之后在原始图像上对当前索引出的区域绘制白色边框# 注意这一操作将会在正在被切片的图像上进行cv2.rectangle(imgcopy # 要绘制长方体的对象, (x, y), (x_, y_) # 绘制长方体的4角的坐标, (255, 255, 255) # 使用的颜色, 2 # 线条的粗细数字越大越粗)#循环完毕后绘制被我们分割后的图像 plt.figure(dpi300)plt.imshow(imgcopy)plt.axis(off);extract_images_from_folder(PATH)
病理图像色彩特征提取
病理图像细微特征提取
自动数据标注
分类场景下的医学图像分析
分割场景下的医学图像分析
检测场景下的医学图像分析