ホームページ  >  記事  >  バックエンド開発  >  PHPとOpenCVライブラリを使用した画像のエッジ検出とストロークの方法

PHPとOpenCVライブラリを使用した画像のエッジ検出とストロークの方法

PHPz
PHPzオリジナル
2023-07-17 15:37:481216ブラウズ

PHP および OpenCV ライブラリを使用した画像エッジ検出とストロークの方法

はじめに:
コンピューター ビジョンと画像処理の分野では、画像エッジ検出は画像を識別するための重要な技術です。画像にエッジ ラインを追加して、より目を引く目立つようにします。この記事では、PHP および OpenCV ライブラリを使用して画像のエッジ検出とストロークを実装する方法を紹介し、対応するコード例を示します。

1. 準備
画像のエッジ検出とストロークに PHP および OpenCV ライブラリを使用するには、次の手順に従って準備する必要があります。 OpenCV ライブラリ: まず、PHP および OpenCV ライブラリがインストールされていることを確認します。ターミナルに次のコマンドを入力すると、PHP および OpenCV ライブラリがインストールされているかどうかを確認できます:

php -v
    インストールされていない場合は、次のコマンドを使用して PHP および OpenCV ライブラリをインストールできます:
  1. sudo apt-get install php
    sudo apt-get install php-opencv

    テスト イメージの取得: テスト用のイメージを準備します。インターネットからダウンロードするか、独自の写真を使用できます。画像が PHP ファイルと同じディレクトリにあることを確認し、「test.jpg」という名前を付けます。

  2. 2. 画像エッジ検出
  3. 最初に、画像エッジ検出に PHP および OpenCV ライブラリを使用する方法を紹介します。以下は、このステップを実装するコード例です:
  4. <?php
    // 加载图像
    $image = cvimread("test.jpg");
    // 转换为灰度图像
    $gray = cvcvtColor($image, CV_BGR2GRAY);
    // 进行边缘检测
    $edges = cvCanny($gray, 50, 150);
    // 显示结果
    cvimshow("Edges", $edges);
    cvwaitKey();
    ?>
上記のコードでは、最初に画像「test.jpg」が cvimread 関数を使用してロードされます。次に、関数 cvcvtColor を使用して画像をグレースケール イメージに変換します (エッジ検出はグレースケール イメージで実行されることが多いため)。次に、cvCanny 関数を使用してエッジ検出が実行されます。ここで、50 と 150 はそれぞれ、しきい値の下限しきい値と上限しきい値を表します。最後に、関数 cvimshow を使用して検出されたエッジを表示し、関数 cvwaitKey を使用してユーザーがいずれかのキーを押すのを待ってから表示ウィンドウを閉じます。


3. 画像のストローク

次に、PHP と OpenCV ライブラリを使用して画像をストロークする方法を紹介します。以下は、このステップを実装するコード例です。

<?php
// 加载图像
$image = cvimread("test.jpg");
// 转换为灰度图像
$gray = cvcvtColor($image, CV_BGR2GRAY);
// 进行边缘检测
$edges = cvCanny($gray, 50, 150);
// 转换为彩色图像
$color = cvcvtColor($edges, CV_GRAY2BGR);
// 使用矩形框标记边缘
$contours = cvindContours($edges, cvCV_RETR_EXTERNAL, cvCV_CHAIN_APPROX_SIMPLE);
cvdrawContours($color, $contours, -1, [0, 255, 0], 2);
// 显示结果
cvimshow("Edges with Contours", $color);
cvwaitKey();
?>

上記のコードでは、画像エッジ検出と同じステップが最初に実行されます。次に、関数 cvcvtColor を使用して、エッジ イメージをカラー イメージに変換します。次に、cv indContours 関数を使用してエッジの輪郭を見つけます。cvCV_RETR_EXTERNAL は外側の輪郭のみが返されることを意味し、cvCV_CHAIN_APPROX_SIMPLE は変曲点情報のみが保持されることを意味します。最後に、関数 cvdrawContours を使用して、色と線の幅を指定してカラー イメージ上に輪郭をマークします。最後に、 cvimshow 関数を使用してストロークのあるイメージを表示し、 cvwaitKey 関数を使用して、表示ウィンドウを閉じる前にユーザーが任意のキーを押すのを待ちます。


概要:

PHP と OpenCV ライブラリを使用することで、画像のエッジ検出とストローク機能を簡単に実装できます。上記のコード例は、PHP および OpenCV ライブラリを使用して、画像の読み込み、エッジ検出の実行、画像タイプの変換、輪郭の検索、エッジの描画を行う方法を示しています。これらのコードを実行すると、エッジと輪郭を含む画像を取得し、表示ウィンドウを通して結果を確認できます。

この記事の内容が、読者が画像エッジの検出とトレースに PHP および OpenCV ライブラリを使用する方法を理解し、実際の画像処理プロジェクトに適用できることを願っています。継続的な学習と実践を通じて、画像処理能力をさらに向上させ、より複雑で効率的な画像処理アルゴリズムを開発できます。

以上がPHPとOpenCVライブラリを使用した画像のエッジ検出とストロークの方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。