You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

医学图像处理:如何提取框选/掩码区域图案并粘贴至另一医学图像?

医学图像区域提取与粘贴实现方法

针对你需要提取框选/掩码区域并粘贴到另一张医学图像的需求,以下是两种常用的实现方案,基于Python的OpenCV和NumPy库完成,适合处理常见的医学图像格式(如PNG、DICOM等):

一、矩形框选区域的提取与粘贴

如果是规则的矩形区域,操作流程简单直接:

  1. 加载图像
    医学图像多为灰度图,加载时指定灰度模式;若是彩色图像可省略参数。
  2. 手动框选目标区域
    用OpenCV的交互工具选择要提取的矩形,也可以直接输入坐标。
  3. 复制粘贴到目标图像
    将提取的区域覆盖到目标图像的指定位置。

示例代码:

import cv2
import numpy as np

# 加载源图像与目标图像(DICOM格式需用pydicom库加载,见下方注意事项)
src_img = cv2.imread('source_med_img.png', cv2.IMREAD_GRAYSCALE)
dst_img = cv2.imread('target_med_img.png', cv2.IMREAD_GRAYSCALE)

# 手动框选源图像中的提取区域
roi = cv2.selectROI("选择提取区域", src_img, showCrosshair=True, fromCenter=False)
x1, y1, w, h = roi
selected_region = src_img[y1:y1+h, x1:x1+w]

# 手动选择目标图像的粘贴位置
dst_roi = cv2.selectROI("选择粘贴位置", dst_img, showCrosshair=True, fromCenter=False)
x_dst, y_dst, _, _ = dst_roi

# 执行粘贴(确保目标位置尺寸与提取区域一致)
dst_img[y_dst:y_dst+h, x_dst:x_dst+w] = selected_region

# 查看并保存结果
cv2.imshow("粘贴结果", dst_img)
cv2.waitKey(0)
cv2.imwrite('pasted_result.png', dst_img)

二、任意掩码区域的提取与粘贴

针对不规则区域(比如分割模型生成的掩码、手动绘制的区域),需要借助掩码图像来精准提取:

  1. 准备掩码图像:单通道图像,白色(255)代表要提取的区域,黑色(0)为背景。
  2. 提取掩码覆盖的源图像内容
  3. 将提取内容粘贴到目标图像的对应位置

示例代码:

import cv2
import numpy as np

src_img = cv2.imread('source_med_img.png', cv2.IMREAD_GRAYSCALE)
dst_img = cv2.imread('target_med_img.png', cv2.IMREAD_GRAYSCALE)
mask = cv2.imread('region_mask.png', cv2.IMREAD_GRAYSCALE)  # 提前准备的掩码

# 提取源图像中掩码覆盖的区域
masked_src = cv2.bitwise_and(src_img, src_img, mask=mask)

# 设置粘贴位置的偏移量(dx, dy为目标图像左上角相对源掩码左上角的坐标差)
dx, dy = 100, 100  # 示例偏移量,可根据需求调整

# 创建目标图像对应的掩码,将原掩码放到指定位置
dst_mask = np.zeros_like(dst_img)
dst_mask[dy:dy+mask.shape[0], dx:dx+mask.shape[1]] = mask

# 先清空目标图像的对应区域,再粘贴提取内容
dst_img = cv2.bitwise_and(dst_img, dst_img, mask=cv2.bitwise_not(dst_mask))
dst_img = cv2.bitwise_or(dst_img, masked_src)

cv2.imshow("掩码粘贴结果", dst_img)
cv2.waitKey(0)
cv2.imwrite('mask_pasted_result.png', dst_img)

关键注意事项

  • 处理DICOM图像:需用pydicom库加载,代码示例:import pydicom; ds = pydicom.dcmread('med_image.dcm'); img = ds.pixel_array,后续处理逻辑与普通图像一致。
  • 灰度一致性:确保源图像与目标图像的灰度范围匹配,避免粘贴后出现明显色差,可通过cv2.normalize()做归一化处理。
  • 3D医学图像:针对CT/MRI序列,可遍历每个切片执行上述操作,实现3D区域的复制粘贴。

内容的提问来源于stack exchange,提问作者copiglet

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 08:01:25