Skip to main content

チェーンコードとは何ですか?

computerコンピューターグラフィックスと画像処理では、チェーンコードは、オブジェクトの輪郭を白黒、またはモノクロの画像でエンコードするために使用されるアルゴリズムです。結果のコードのシーケンスは、それが位置する画像に対するオブジェクトのアウトラインを描画する方法を説明するか、アルゴリズムが開始されたアウトライン上の位置に関連する方向のコレクションであり、本質的に基本的に手順を提供することができます。オブジェクトを再描画するために従うことができます。これらのコードは、式に従って正規化し、別のチェーンコードと比較して、2つのオブジェクトが同一かどうかを判断できます。チェーンコードは、コンピュータービジョンプログラムでオブジェクトを分離したり、画像処理の画像セグメンテーションに使用できますが、より一般的には光学文字認識(OCR)プログラムで使用できます。基本概念はそれぞれで同じです。まず、オブジェクトの端は、通常、ピクセルでラスター画像を介してピクセルを移動することにより配置されます。位置すると、位置が記録され、周囲のエッジが検出されます。検出アルゴリズムが時計回りまたは反時計回りに移動するかどうかに応じて、現在の位置は元の位置に戻るまで端に沿って一方向に移動します。。この数値は、一般に、オブジェクトの端に沿って移動した方向を示します。たとえば、チェーンコードアルゴリズムが右から左にまっすぐなエッジに続いている場合、エッジが左にトレースされるたびに、左の数値コードがコードの最後に追加されます。結果のコードは、任意の開始点からシーケンスが追跡され、各ステップにピクセルが配置された場合、オブジェクトのアウトラインが再描画される数字の文字列です。完了すると、いくつかの異なるアルゴリズムを適用して、他のチェーンコードシーケンスとの比較を行うことができます。まず、最低整数値が決定されるまで開始数を回転させることにより数値が正規化されます。このようにして、エンコードが開始された各オブジェクトのどこに関係なく、同じアウトラインを持つ2つのオブジェクトを比較できます。これらには、オブジェクトのアウトラインが線で接続されている一連の座標によって記述されるベクトルベースのエンコードが含まれますが、この方法は細かく詳細なアウトラインで使用すると損失する可能性があります。また、ランレングスエンコード(RLE)を使用して、より効率的な方法で保存できる非常に大きなオブジェクトまたは複雑なオブジェクトのコードをさらに圧縮するアルゴリズムのバージョンも存在します。