我正在尝试使用以下代码显示平均合并图像:
两张图片相加而没有任何修改 - 洗白区域是由于元素相加超过了255,因此该值被设置为255。
这个Udacity课程显示,如果你通过除以2来添加图像,你应该得到这个结果:
。
所以问题是:当我将任意一幅图像除以2时,矩阵中包含小于255的值,两个矩阵相加也包含小于255的值,为什么最终的图像却完全失真了?
import numpy as np
import cv2
import matplotlib.pyplot as plt
dolphin=cv2.imread('dolphin.png',0) #Also tried without the 0
bicycle=cv2.imread('bicycle.png',0)
以下代码添加了两个图像,结果与课程中显示的相同。但是简单的加法avg=img1+img2不起作用。
sumimg=cv2.add(dolphin,bicycle)
cv2.imshow('Sum image', sumimg)
两张图片相加而没有任何修改 - 洗白区域是由于元素相加超过了255,因此该值被设置为255。
cv2.waitKey(0)
cv2.destroyAllWindows()
以下代码只给我一个白色图像。当我尝试显示半强度的海豚或自行车时...结果相同,除了一些黑点。
avgimg=cv2.add(dolphin/2,bicycle/2)
通过avgimg=img1/2+img2/2获得相同的结果
cv2.imshow('Avg image', avgimg)
cv2.waitKey(0)
cv2.destroyAllWindows()
这个Udacity课程显示,如果你通过除以2来添加图像,你应该得到这个结果:
![From Udacity course - two images added after dividing by 2](https://istack.dev59.com/VQSoO.webp)
所以问题是:当我将任意一幅图像除以2时,矩阵中包含小于255的值,两个矩阵相加也包含小于255的值,为什么最终的图像却完全失真了?