将calcHist与mas一起使用时出错

2024-04-25 07:04:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我在尝试使用带掩码的calcHist时遇到此错误:error: (-215) mask.size() == imsize && mask.channels() == 1 in function histPrepareImages

bgr_split = cv2.split(img)

hist_size = 256
c_range = [0, 256]
rows, _, _ = img.shape

b_hist = cv2.calcHist(bgr_split[0], [0], mask, [hist_size], c_range, False)

应该说,当函数没有应用掩码时,它是有效的。实际图像的形状是(246,300,3),而遮罩的形状是(246,300,1)。在

通过使用轮廓内包含的区域创建遮罩。在

^{pr2}$

有人能发现这里的问题吗?干杯


Tags: imgsize错误rangemaskerrorcv2hist
2条回答

你用来计算直方图的线应该是

b_hist = cv2.calcHist(bgr_split, [0], mask, [hist_size], c_range, False)

第二个参数(“[0]”)已经指示您只想为第一个通道生成直方图。在

尝试在第一个输入参数周围加上括号。在

b_hist = cv2.calcHist([bgr_split], [0], mask, [hist_size], c_range, False)

我有同样的错误“错误:(-215)掩码大小()==imsize&;遮罩.通道在函数histPrepareImages中()==1,在为第一个参数添加括号之后,错误消失了。在

相关问题 更多 >