1

OpenCV での Web カメラ ショットを PIL に変換して、画像ピクセルをピクセルごとに読み取り、RGB 形式を取得できるようにしたいと考えています。

PIL を使用する場合、通常は RGBA 形式を取得しますが、期待していた 4 つの数値ではなく、1 つの整数を取得するようになりました。

次のコード スニペットを検討してください。

cv.SetCaptureProperty(capture, cv.CV_CAP_PROP_FRAME_HEIGHT, my_height)
cv.SetCaptureProperty(capture, cv.CV_CAP_PROP_FRAME_WIDTH, my_width)
cv.SetCaptureProperty(capture, cv.CV_CAP_PROP_FORMAT, cv.IPL_DEPTH_32F)
  img = cv.QueryFrame(capture)
...
    index_value = index_value + 1
    picture_time = current_time + variance
    #Give the cv image to PIL
    im = Image.fromstring("L", cv.GetSize(img), img.tostring())
    #Get the color set out of the images
    width, height = im.size
    image_pixels = im.load()
    total_size = width * height
    colors = {}
    for h in range(height):
        for w in range(width):
            print width, height
            detail = image_pixels[w, h]
            #Filter our transparencies and dark colors
            print detail

ウェブカメラをカバーしているときは 14、カバーしていないときは 140 などの値が得られます。

Pythonic の方法で Web カメラから画像を適切に取得し、各ピクセルの RGB 値を取得するにはどうすればよいですか?

4

0 に答える 0