OpenCV 图像减法运算:使用 NumPy 进行像素值减法
OpenCV 图像减法运算:使用 NumPy 进行像素值减法
本代码示例使用 OpenCV 和 NumPy 库进行图像减法运算,将一张图片的像素值减去另一张图片的像素值,并展示结果。
代码示例:
import cv2
import numpy as np
img = cv2.imread('d:\image\angiography_live_image.tif')
m = cv2.imread('d:\image\angiography_mask_image.tif')
# 使用 NumPy 进行减法运算
result = np.int32(img) - np.int32(m)
cv2.imshow('original', img)
cv2.normalize(result, result, 0, 255, cv2.NORM_MINMAX)
result = result.astype(np.uint8)
cv2.imshow('result', result)
cv2.waitKey(0)
cv2.destroyAllWindows()
代码分析:
- 第 1 行: 导入
cv2模块,用于图像处理。 - 第 2 行: 导入
numpy模块,用于数值计算。 - 第 3 行: 使用
cv2.imread函数读取一张图片,图片的路径为 'd:\image\angiography_live_image.tif',并将其赋值给变量img。 - 第 4 行: 使用
cv2.imread函数读取另一张图片,图片的路径为 'd:\image\angiography_mask_image.tif',并将其赋值给变量m。 - 第 7 行: 使用
np.int32函数将img和m转换为 32 位整型数组,以便进行数值运算。 - 第 8 行: 使用减法运算符
-对两个 32 位整型数组进行减法运算,得到结果result。 - 第 9 行: 使用
cv2.imshow函数显示原始图像,窗口标题为 'original',图像数据为img。 - 第 10 行: 使用
cv2.normalize函数将result的像素值范围归一化到 0-255 之间,以便在显示时能够正常显示。 - 第 11 行: 使用
result.astype函数将result的数据类型转换为无符号 8 位整型,以便能够被 OpenCV 正确显示。 - 第 12 行: 使用
cv2.imshow函数显示处理后的图像,窗口标题为 'result',图像数据为result。 - 第 13 行: 使用
cv2.waitKey函数等待用户按下任意键,以便能够看到结果图像。 - 第 14 行: 使用
cv2.destroyAllWindows函数关闭所有图像窗口。
总结:
这段代码展示了使用 OpenCV 和 NumPy 进行图像减法运算的简单示例。通过使用 NumPy 进行像素值减法运算,并使用 OpenCV 进行图像显示,可以实现对两张图片进行像素值减法,得到最终的处理结果。
原文地址: https://www.cveoy.top/t/topic/pajT 著作权归作者所有。请勿转载和采集!