我正在尝试对一个图像集进行标准化,其中包括向图像中的每个值添加一个常量
下面是一个示例,使用以下url处的图像: https://helpx.adobe.com/content/dam/help/en/stock/how-to/visual-reverse-image-search/jcr_content/main-pars/image/visual-reverse-image-search-v2_intro.jpg
import numpy as np
import cv2
img = cv2.imread("imagepath.jpeg")
arraymin = np.min(img)
print(arraymin)
arraymin
的值是0。我尝试通过添加到整个数组,例如10。我尝试了3种不同的方法
img = img + 10
img += 10
img2 = np.add(img, 10)
这成功地为数组中的大多数值添加了10(总共30个),但是当我再次调用数组上的np.min
时,最小值仍然是0
print(np.min(img))
print(np.min(img2))
我可以通过调用生成真值的0 in img
来验证数组中是否有0
为什么在整个数组中加上10不会改变0值
从该图像文件创建的数组的数据类型为
uint8
,最大值为255。向数组中添加正数时,某些元素将覆盖此值。特别是,任何像素的颜色通道的值为246,当您向其添加10时,该值将为0:如果要对图像执行某些运算,请首先将其转换为更大的整数类型,或者通过调用
float
:您还可以使用
cv2.add
添加2个图像,当值超过255时,将为255:相关问题 更多 >
编程相关推荐