0

プロジェクトの一部として、基本的な画像処理を行うために AForge.Net ライブラリを使用しています。画像内の個々の幾何学的形状 (正方形、円など) を識別するのは簡単なことであることがわかりました。ただし、のような画像がある 画像 場合、プログラムは外側の円しか識別できません。円と線として認識してほしいです。

同様に別の例は、 画像1 プログラムが正方形のみを識別しますが、正方形と円として認識する必要があります。

このライブラリ自体は古くてサポートされていないと思いますが、助けていただければ幸いです! これは非常に使いやすいライブラリであることがわかりましたが、私の要件が満たされない場合は、他のライブラリも利用できます。(Java、C#、または Python)。ありがとう!

4

1 に答える 1

1

これは簡単な作業です。のPython
ようなライブラリをインストールする必要がありますnumpyscipy.ndimagescipy.ndimageの背景に任意の形状を抽出できるのはあなただけです。
したがって、画像が白い背景の場合は、最初に画像を反転する必要があります。これは簡単な作業です。

import scipy.ndimage  
from scipy.misc import imread           # so I can read the image as a numpy array

img=imread('image.png')        # I assume your image is a grayscale image with a black bg.  
labeled,y=scipy.ndimage.label(img)   # this will label all connected areas(shapes).  
                                         #y returns how many shapes??  

shapes=scipy.ndimage.find_objects(labeled)         
# shapes returns indexing slices for ever shape  
# So if you have 2 shapes in your image,then y=2.
# to extract the 1st shape you do like this.  
first_shape=img[shapes[0]]          # that's is a numpy feature if you are familiar with numpy .
second_shape=img[shapes[1]]  

個々の形状を抽出した後、それが何であるかを識別するために実際にいくつかの数学的な作業を行うことができますか?(例えば、真円度比>>あなたはそれをグーグルすることができます、それはあなたの場合に役立ちます)

于 2012-10-23T19:57:07.617 に答える