OpenCV 图像减法运算:从血管造影图像中去除遮罩

本代码演示了如何使用 OpenCV 库对两幅图像进行减法运算,并以实际的血管造影图像为例,展示如何从图像中去除遮罩区域。

import cv2
import numpy as np

# 读取血管造影图像
img = cv2.imread(r'd:\image\angiography_live_image.tif')

# 读取遮罩图像
m = cv2.imread(r'd:\image\angiography_mask_image.tif')

# 使用 OpenCV 减法运算
result = cv2.subtract(img, m)

# 显示原始图像
cv2.imshow('original', img)

# 对结果进行归一化处理
cv2.normalize(result, result, 0, 255, cv2.NORM_MINMAX)

# 将结果转换为 uint8 类型
result = result.astype(np.uint8)

# 显示结果图像
cv2.imshow('result', result)

# 等待用户按下任意键
cv2.waitKey(0)

# 关闭所有窗口
cv2.destroyAllWindows()

代码分析:

  • import cv2: 导入 OpenCV 库,用于图像处理和计算机视觉任务。
  • import numpy as np: 导入 NumPy 库,用于处理多维数组和矩阵。
  • img = cv2.imread(r'd:\image\angiography_live_image.tif'): 读取路径为 d:\image\angiography_live_image.tif 的图像,并将其存储在变量 img 中。
  • m = cv2.imread(r'd:\image\angiography_mask_image.tif'): 读取路径为 d:\image\angiography_mask_image.tif 的图像,并将其存储在变量 m 中。
  • result = cv2.subtract(img, m): 使用 OpenCV 的 subtract 函数对 imgm 进行减法运算,得到结果存储在变量 result 中。
  • cv2.imshow('original', img): 在名为 original 的窗口中显示变量 img 的图像。
  • cv2.normalize(result, result, 0, 255, cv2.NORM_MINMAX): 对变量 result 进行归一化处理,使其像素值范围在 0 到 255 之间。
  • result = result.astype(np.uint8): 将变量 result 的数据类型转换为 uint8,以便显示和保存图像。
  • cv2.imshow('result', result): 在名为 result 的窗口中显示变量 result 的图像。
  • cv2.waitKey(0): 等待用户按下任意键。
  • cv2.destroyAllWindows(): 关闭所有窗口,释放内存。

应用场景:

这段代码可以应用于各种图像处理场景,例如:

  • 从图像中去除噪声或杂质
  • 提取图像的特定区域
  • 对图像进行颜色调整

总结:

本代码展示了如何使用 OpenCV 库进行图像减法运算,并说明了如何对结果进行归一化处理和数据类型转换。该方法可以有效地从图像中去除遮罩区域,并应用于各种图像处理任务。

注意:

请确保代码中指定的图像文件路径正确。

OpenCV图像减法运算:从血管造影图像中去除遮罩

原文地址: https://www.cveoy.top/t/topic/pamu 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录