编写一个函数,实现接受两个不同的图像数组,绘制“差异图像”,并返回差异图像数组的功能。
import numpy as np
import cv2
def generate_diff_image(image1, image2):
# 将图像数组转换为灰度图像
gray_image1 = cv2.cvtColor(image1, cv2.COLOR_BGR2GRAY)
gray_image2 = cv2.cvtColor(image2, cv2.COLOR_BGR2GRAY)
# 计算两个灰度图像的差异
diff_image = cv2.absdiff(gray_image1, gray_image2)
# 对差异图像进行二值化处理
_, threshold_image = cv2.threshold(diff_image, 30, 255, cv2.THRESH_BINARY)
# 对二值化图像进行膨胀操作,以增强差异区域的可视化效果
kernel = np.ones((3, 3), np.uint8)
dilated_image = cv2.dilate(threshold_image, kernel, iterations=2)
# 返回差异图像数组
return dilated_image
这个函数使用OpenCV库来处理图像。首先,将输入的两个图像数组转换为灰度图像,然后计算两个灰度图像的差异。接下来,对差异图像进行二值化处理,将差异区域与背景分离出来。最后,通过膨胀操作增强差异区域的可视化效果。函数返回差异图像数组。
这个函数适用于图像比较、图像识别、图像处理等场景,可以用于检测两个图像之间的差异,并可视化显示差异区域。
腾讯云相关产品推荐:
请注意,以上推荐的腾讯云产品仅供参考,具体选择应根据实际需求进行评估和决策。
领取专属 10元无门槛券
手把手带您无忧上云