3
我需要计算图像上只有一部分的直方图,但这部分有圆形(如圆盘)。我创建掩膜找到图像上的那部分如何使用掩码计算直方图OPENCV?
cv2.rectangle(mask,(0, 0), (width, height), (0,0,0), -1)
cv2.circle(mask,(int(avgkrug[0]),int(avgkrug[1])),radijusp2,(255,255,255),-1)
cv2.circle(mask,(int(avgkrug[0]),int(avgkrug[1])),radijusp1,(0,0,0),-1)
使用上面的代码,我找到了我感兴趣的“圆盘形”区域。 现在我想要计算直方图:
for ch, col in enumerate(color):
hist_item = cv2.calcHist([img],[ch],mask,[256],[0,255])
...
,但得到这个错误
error: (-215) !mask.data || mask.type() == CV_8UC1 in function cv::calcHist
不过,如果我节省DICS掩模,通过cv2.imread阅读(),那么这个错误没有按” t出现。 我也尝试过这种使用这条线
hist_item = cv2.calcHist([slika],[ch],mask.astype(np.uint8),[256],[0,255])
我如何使用我创造calc下直方图面具,所以我不从光盘需要W/R?
检查掩码的数据类型'mask.dtype'。它应该是np.uint8。 –
print(type(mask.dtype)) - > print(np.result_type(mask.dtype)) - > uint8 错误仍然出现 –
Error