0
グレースケールの8ビットイメージの各ピクセルのMBSのみを保持するスクリプトを作成しました。これを行うには、各ピクセルを0b10000000
でマスクしますが、期待される出力は得られません。cv2を使用してグレースケールイメージの7つの低ビットを削除する方法
import cv2
import numpy as np
imageSource = 'input.jpg'
original_img = cv2.imread(imageSource,cv2.COLOR_BGR2GRAY)
cv2.imshow("original", original_img)
result = original_img & 0b10000000
cv2.imshow("out", result)
cv2.imwrite('out.jpg',result)
cv2.waitKey(0)
cv2.destroyAllWindows()
望ましい結果: あなたは、バイナリイメージ(0、255)であるたかった何
問題を説明できますか?各ピクセルを0b10000000でマスキングすると、0b10000000 = 128(中間グレー)または0(黒)の2つの可能なピクセル値が得られます。表示される「正しい結果」には、255(白)と0(黒)の2つの値が表示されます。 –
COLOR_BGR2GRAYはimreadの有効なモードではありません。 [正しいモード]で画像を読むことから始めてください。https://docs.opencv.org/3.3.0/d4/da8/group__imgcodecs.html#gga61d9b0126a3e57d9277ac48327799c80af660544735200cbe942eea09232eb822 – MFisherKDX
あなたのコードを取得した画像を追加してください。質問には、現在の行動と望ましい行動の両方が含まれていなければなりません。 – klutt