1

グレースケール「test.png」のpng画像があります。この画像に適応しきい値を適用する必要があります。私はOpenCVを使用しています。

image = cv2.imread('test_big.png')
im = cv2.adaptiveThreshold(image, 255, cv2.ADAPTIVE_THRESH_GAUSSIAN_C, cv2.THRESH_BINARY_INV, 11, 2)

画像がグレースケールではないため、適応しきい値を適用できません。だから私はグレースケールとして画像を読み取ろうとしました:

image = cv2.imread('test_big.png',1)

これで適応しきい値を適用できますが、出力は白黒ではなく青と赤のイメージになります。誰でも助けることができますか?

4

1 に答える 1

0

問題は 2 番目のコード スニペットにあります。

image = cv2.imread('test_big.png',1)

グレースケール画像だと言いましたtest_big.pngが、3 つのチャネルを持つカラー画像 (RGB) として宣言しました。

したがって、コードを次のように変更する必要があります

image = cv2.imread('test_big.png', 0)
  • 0 -> グレースケール画像
  • 1 -> カラー画像

あなたも試すことができます:

cv2.imread('test_big.png', cv2.IMREAD_GRAYSCALE)

肝心なのは、読み込まれている画像がグレースケール画像であっても、明示的に指定されるまでシステムはそれを認識しないということです。あなたの場合、画像はグレースケール画像でしたが、カラー画像として宣言したため、画像に 3 つのチャネル (RGB) があると見なされたため、後続の適応しきい値関数は実行されませんでした。

于 2016-12-30T15:52:38.413 に答える