如何使用我的sky.jpg的平均值和标准偏差来分离skypart(sky1.jpg和sky2.jpg);sky_mask.jpg
像图像二值化(天空部分为白色,其余部分为黑色)
这是我的密码:
import cv2
import numpy as np
import matplotlib.pyplot as plt
def rgb2gray(rgb):
return np.dot(rgb[...,:3], [0.299, 0.587, 0.144])
img = cv2.imread("sky.jpg")
mask_i = cv2.imread("sky_mask.jpg")
sky1 = cv2.imread("sky_1.jpg", 0)
sky2 = cv2.imread("sky_2.jpg")
mean_RGB, std_RGB = cv2.meanStdDev(img, mask_i)
ret,thresh2_RGB = cv2.threshold(sky2,152,255,cv2.THRESH_BINARY)
t2 = rgb2gray(thresh2_RGB)
print("RGB_mean", mean_RGB)
print("RGB_Std", std_RGB)
plt.imshow(t2, cmap="gray")
cv2.waitKey(0)
cv2.destroyAllWindows();
RGB平均值为116/102/84
RGB标准为70/57/62
我希望天空的一部分是白色的,其余部分是黑色的
我是否应该先将RGB转换为灰度,然后计算平均值和标准差
idk我应该使用什么阈值(所以我只需键入152)
目前没有回答
相关问题 更多 >
编程相关推荐