OpenCv用のPythonラッパーの問題が残っています。 I黒画素数がPythonのOpenCVでピクセルをスキャンできない
def checkBlackPixels(img, threshold):
width = img.width
height = img.height
nchannels = img.nChannels
step = img.widthStep
dimtot = width * height
data = img.imageData
black = 0
for i in range(0, height):
for j in range(0, width):
r = data[i*step + j*nchannels + 0]
g = data[i*step + j*nchannels + 1]
b = data[i*step + j*nchannels + 2]
if r == 0 and g == 0 and b == 0:
black = black + 1
if black >= threshold * dimtot:
return 1
else:
return 0
ループ(与えられた画像の各画素をスキャン)入力RGB 画像である場合、良好な動作をtresholdよりも大きい場合に1を返し、この機能を持っている...しかし入力が単一チャネル画像である場合、私はこのエラーを取得する:(次の例では「RG」と呼ばれる)入力単一チャネル画像を から取得され
for j in range(width):
TypeError: Nested sequences should have 2 or 3 dimensions
「SRC」と呼ばれるRGB画像はcvSplitで処理し、その後、cvAbsDiff
cvSplit(src, r, g, b, 'NULL')
rg = cvCreateImage(cvGetSize(src), src.depth, 1) # R - G
cvAbsDiff(r, g, rg)
私もすでに問題が差分画像から来ていることに気づいたcvSplitから持って
...
誰もが私を助けることができますか? ありがとう
ネストされたシーケンスのコードで何も見ないので、 'TypeError:ネストされたシーケンスは2次元または3次元であるべきです 'というエラーメッセージは意味をなさない。 – martineau
それは事実です!しかし、carnieriから提案されたトリックは良い作品です。 –