如何在python中给出直方图掩码

2024-05-06 14:06:28 发布

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

我是Python新手。我在网上找到了一个计算图像直方图的代码。 我想计算图像局部区域的直方图,所以我试着用一个遮罩。 这是我的代码:

 i_rgb1 = cv2.imread(im1)
   img1 = cv2.cvtColor(i_rgb1, cv.CV_BGR2HSV)
   hist2 = np.zeros(img2.shape)

bins = np.arange(256).reshape(256, 1)
color = [(255, 0, 0), (0, 255, 0), (0, 0, 255)]

for labelx in xrange(len(label)):
    temp = labels_map.copy()
    temp[labels_map != label[labelx]] = 0
    temp[labels_map == label[labelx]] = 255
    cv2.imwrite('mask.png', temp)
    for ch, col in enumerate(color):
        hist_item1 = cv2.calcHist([img1], [ch], temp, [256], [0, 255])

其中labels_-map是一个图像矩阵,由每个像素的标签分配组成。 但是当我运行这个代码时,我得到一个错误

^{pr2}$

请帮我修正这个错误。在


Tags: 代码in图像mapforlabelsnp直方图
1条回答
网友
1楼 · 发布于 2024-05-06 14:06:28

我认为这是因为temp不是一个uint8掩码数组,所以可以转换它:

cv2.calcHist([img1], [ch], temp.astype(np.uint8), [256], [0, 255])

或者,当您创建它时:

^{pr2}$

相关问题 更多 >