0

ヒストグラムとpythonでopencv2に問題があります。ここからいくつかのコードを取得しました: http://opencvpython.blogspot.com/2012/04/drawing-histogram-in-opencv-python.html

コードは次のとおりです。

import cv2
import numpy as np

img = cv2.imread('lena.bmp')
h = np.zeros((512,512,3))                                   

bins = np.arange(256).reshape(256,1)
color = [ (255,0,0),(0,255,0),(0,0,255) ]
for ch, col in enumerate(color):
    hist_item = cv2.calcHist([img],[ch],None,[256],[0,255])
    cv2.normalize(hist_item,hist_item,0,255,cv2.NORM_MINMAX)
    hist=np.int32(np.around(hist_item))
    pts = np.column_stack((bins,hist))
    cv2.polylines(h,[pts],False,col)
    print pts

どこ lena.bmp はこのリンクから来ています。

問題は次のとおりです。

1) cv2.polylines(h,[pts],False,col) はエラーで失敗します:

OpenCV Error: Assertion failed (src.dims <= 2 && esz <= (size_t)32) in transpose

2)ptsの印刷r、g、bのヒストグラムを分析するためにgimpを使用して取得した値とは値が異なることがわかります。ここで、ビンには異なる値があることを意味します。

何か案が?

4

1 に答える 1

0

最終的に、このコードを別のコンピューターで動作させたので、コードは正しいのですが、私の環境に何かが欠けていました。

于 2013-03-12T15:21:15.283 に答える