opencv4.0 以上の createLineSegmentDetector と LineSegmentDetectorImpl の使用

opencv4.0では、著作権の関係でLSDアルゴリズムの関数インターフェースが廃止され、関連する関数を使用すると以下のエラーが発生します。

lsd.cpp:143: error: (-213:The function/feature is not implemented)

またimgproc.hpp、このファイルでは、opencv3.3.1 バージョンと opencv4.0 バージョンの LSD アルゴリズムが同じクラス、クラス宣言によって定義されているため、コードをコンパイルして渡すことができます。したがって、1 つの方法は、opencv の公式 Web サイトにアクセスして以前のバージョンをダウンロードし、「lsd.cpp」ファイルを見つけて、バージョン 4.0 の対応するディレクトリに配置することです。これは Windows ユーザーにとっては便利ですが、Linux ユーザーにとっては、再コンパイルが少し面倒です。

もう 1 つの方法は、対応する cpp ファイルの下に新しい .hpp ファイルを作成し、その中に lsd アルゴリズムのコードを入れることです.明らかに後者の方が便利です. 読者の便宜のために、私が書いた my_lsd.hpp ファイルを直接提供し、それをインクルードするだけで、対応する createLineSegmentDetector が mycreateLineSegmentDetector に変更され、LineSegmentDetectorImpl が myLineSegmentDetectorImpl に変更され、同じことが呼び出しにも当てはまります。

/*M///
//
//  IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING.
//
//  By downloading, copying, installing or using the software you agree to this license.
//  If you do not agree to this license, do not download, install,
//  copy or use t

おすすめ

転載: blog.csdn.net/gwplovekimi/article/details/123926754