私は自動化された「バグカウント」アルゴリズムに取り組んでおり、減算すると非常に低いレベルのコントラストをどのように認識できるのか疑問に思っています(パッドに追加のバグはありません-カメラが同じ位置にあり、照明条件が非常に似ていると仮定します) 2 枚の写真を相互に撮影すると、光の状態がほとんど異なるため、きれいな黒の画像が得られません。ここで、ガウス フィルターと mahotas.thresholding.otsu() を適用してバグがある場所を描画し (上に白いブロブを配置)、ndimage.label() を使用してそれらをカウントします。
ただし、入力画像「cropbugs.jpg」が非常に濃い灰色の場合、otsu() を適用するとランダムな出力が得られ、label() 関数はランダムなバグ カウント数を返します。画像が非常に暗い灰色であるかコントラストが低いかを認識し、バグ数を 0 に設定するにはどうすればよいですか? ありがとう
これまでの私のコードは次のようになります。
bug_img = mahotas.imread('cropbugs.jpg')
pylab.gray()
bug_img = ndimage.gaussian_filter(bug_img, 6)#8
T = mahotas.thresholding.otsu(bug_img)
pylab.imshow(bug_img > T)
labeled,nr_objects = ndimage.label(bug_img > T)
print "Bug Count: "+str(nr_objects)
pylab.imshow(labeled)
pylab.jet()
pylab.show()