我发现每次利用opencv包处理遥感影像经常会报错,明明已经变成uint格式了,还会报错
这次发现是因为有一些只支持三通道,我的二值图像是一通道,存储结果报错是因为需要保存1通道的结果,我的是三通道
所以就需要1通道3通道来回转换` img1 = np.array(b1)
# img2 = np.dtype(img1, np.uint8)
img = np.expand_dims(img1, axis=2)
img = np.concatenate((img, img, img), axis=-1)
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
ret, binary = cv2.threshold(gray, 127, 255, cv2.THRESH_BINARY)
contours, hierarchy = cv2.findContours(binary, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
# contours = cv2.findContours(img)
dilate = cv2.fillPoly(img, [contours[1]],(255,15,15))
cv2.imshow("filled binary", dilate)`