20191121
我主要是使用的是matlab和python语言。c++是我的复语言。
在处理图像时候,如果图像数据的类型是float,cv2.imshow时候,那么其中value大于1的为白色,小于0的为黑色。
在处理图像时候,如果图像数据的类型是uint,就是平时我们读取的时候的数据。
某些运算中(gamma,融合等等),需要图像数据会变成float32,python在写代码时候并不会提示这些。如果在你显示时候,出现一片白色。可以提看下时候数据类型变成了float32。
演示代码
import cv2
import numpy as np
tmp = cv2.imread(r"E:\py_code\img_treatment\img\1.jpg")
tmp = cv2.resize(tmp,(300,300))
float_Value = np.float32(tmp)
cv2.imshow("float_Value",float_Value)
uint_value = np.uint8(tmp)
cv2.imshow("uint_value",uint_value)
cv2.waitKey()
结果
在c++中,常会调用那个啦,哈哈 忘记了怎么写。U3C3,F3C1之类的东西,实在想不起来了。
20200101
关于饱和运算问题,与opencv/numpy的运算函数
import cv2
import numpy as np
# 一维数组
a = np.linspace(0.1,1,10)
a = cv2.normalize(a, None, 0, 255, norm_type=cv2.NORM_MINMAX, dtype=cv2.CV_8UC3)
print(a+10)
print(cv2.add(a,10))
print(a-20)
print(cv2.subtract(a,20))
# 三维的
b = np.linspace(1,27,27).reshape(3,3,3)
b = cv2.normalize(b, None, 0, 255, norm_type=cv2.NORM_MINMAX, dtype=cv2.CV_8UC3)
print(b)
print(b+10)
print(cv2.add(b,10))
print(np.add(b,10))
print(b-20)
print(cv2.subtract(b,20))
结果
# 一维
[[ 10]
[ 38]
[ 67]
[ 95]
[123]
[152]
[180]
[208]
[237]
[ 9]]
[[ 10]
[ 38]
[ 67]
[ 95]
[123]
[152]
[180]
[208]
[237]
[255]]
[[236]
[ 8]
[ 37]
[ 65]
[ 93]
[122]
[150]
[178]
[207]
[235]]
[[ 0]
[ 8]
[ 37]
[ 65]
[ 93]
[122]
[150]
[178]
[207]
[235]]
# 三维
[[[ 0 10 20]
[ 29 39 49]
[ 59 69 78]]
[[ 88 98 108]
[118 128 137]
[147 157 167]]
[[177 186 196]
[206 216 226]
[235 245 255]]]
[[[ 10 20 30]
[ 39 49 59]
[ 69 79 88]]
[[ 98 108 118]
[128 138 147]
[157 167 177]]
[[187 196 206]
[216 226 236]
[245 255 9]]]
[[[ 10 10 20]
[ 39 39 49]
[ 69 69 78]]
[[ 98 98 108]
[128 128 137]
[157 157 167]]
[[187 186 196]
[216 216 226]
[245 245 255]]]
[[[ 10 20 30]
[ 39 49 59]
[ 69 79 88]]
[[ 98 108 118]
[128 138 147]
[157 167 177]]
[[187 196 206]
[216 226 236]
[245 255 9]]]
[[[236 246 0]
[ 9 19 29]
[ 39 49 58]]
[[ 68 78 88]
[ 98 108 117]
[127 137 147]]
[[157 166 176]
[186 196 206]
[215 225 235]]]
[[[ 0 10 20]
[ 9 39 49]
[ 39 69 78]]
[[ 68 98 108]
[ 98 128 137]
[127 157 167]]
[[157 186 196]
[186 216 226]
[215 245 255]]]