私はピクセルで作業しています。行優先順序で横断するとき、下の図の最初の黒ピクセルの位置を探したいと思います。これは、画像上の数字と画像上のすべての数字の合計を認識するためのプロジェクトの一部です。イメージ処理が機能しない単純なpythonコード
for a in range(0,80):
for b in range(0,80):
if (imgt[a,b,0]==0 and imgt[a,b,1]==0 and imgt[a,b,2]==0):
x=a
y=b
break
break
break
print x,y
、について説明:
コードは次のようになります - 私は、座標を通過するループのための2つがあります(画像は80×80であるので、range
である(0,80))。 forループでは、ピクセルが黒かどうかをチェックしています。黒の場合は、x
にa
の座標値が割り当てられ、y
はb
です。
期待される出力: - プログラムは最終的に(29,27)でなければならない最初の左上の黒ピクセルの座標を書き込む必要があります。
実際の出力: - 私は常に(56,27)を印刷します。 ここで何が問題になるかも知っていますか?私はとてもシンプルだと思われますが、私は何をすべきかわかりません。
ありがとうございます!
最初の行で0のインデックスからクロッピングしています。 (28:56、28:56) – saurabheights
私は理解していない、あなたはこのことを考えるimgtt = imgt [0:28,0:28]?私はちょうど28x28の寸法の画像を作りたいと思っていました。それは28の数字を含むどんな間隔でもいいと思います.. – slomil
あなたは正しいです。 imgttは使用されていません。私はちょうど最初の行と結論のイメージを見ました。私の間違い。問題は、あなたがbreakの使用が両方のループのためにあなたを出ると仮定しているように見えます。 breakは1つの外側のループからのみ終了するため、おそらく黒ピクセルの最初の列から最後の行に移動します。 – saurabheights