ホームページ  >  記事  >  バックエンド開発  >  Python サーバー プログラミング: OpenCV を使用したコンピューター ビジョン

Python サーバー プログラミング: OpenCV を使用したコンピューター ビジョン

WBOY
WBOYオリジナル
2023-06-18 20:57:461535ブラウズ

コンピューター技術の急速な発展に伴い、コンピューター ビジョンの分野は、ますます多くの Python プログラマーにとって関心のある分野となっています。この記事では、Python と OpenCV フレームワークを使用してコンピューター ビジョン サーバーを構築し、いくつかの基本的な画像処理機能を実装する方法を紹介します。

  1. OpenCV のインストール

コンピューター ビジョン開発に OpenCV を使用するには、まず Python に OpenCV ライブラリをインストールする必要があります。インストール方法は多数ありますが、ここでは比較的簡単な方法を紹介します:

コマンド ラインに次のコマンドを入力します:

pip install opencv-python

さらに、次のような他の OpenCV モジュールをインストールすることも選択できます。 :

pip install opencv-contrib-python
  1. 画像処理関数の実装

次に、OpenCV を使用して、次のような基本的な画像処理関数を実装します。画像ファイルの読み取り

    画像の表示
  • 画像形式の変換
  • 画像のトリミング
  • 画像の拡大縮小
  • 画像のフィルタリング
  • 画像をグレースケールに変換する
  • コードの実装は次のとおりです:
  • import cv2
    
    # 读取图像文件
    img = cv2.imread("test.jpg")
    
    # 显示图像
    cv2.imshow("Original Image", img)
    
    # 转换图像格式
    gray_img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
    
    # 显示灰度图像
    cv2.imshow("Gray Image", gray_img)
    
    # 裁剪图像
    cropped_img = img[100:400, 200:500]
    
    # 显示裁剪后的图像
    cv2.imshow("Cropped Image", cropped_img)
    
    # 缩放图像
    resized_img = cv2.resize(img, (800, 600))
    
    # 显示缩放后的图像
    cv2.imshow("Resized Image", resized_img)
    
    # 滤波图像
    blur_img = cv2.GaussianBlur(img, (5, 5), 0)
    
    # 显示滤波后的图像
    cv2.imshow("Blurred Image", blur_img)
    
    cv2.waitKey(0)
    cv2.destroyAllWindows()
このコードは、「test.jpg」という名前の画像ファイルを読み取り、上記の基本的な画像処理関数を実装します。

Flask に基づくコンピューター ビジョン サーバーの構築

  1. 次に、Python Web フレームワークである Flask を使用して、上記のイメージを統合する単純なコンピューター ビジョン サーバーを構築します。処理関数は API インターフェイスの形式でカプセル化されます。
コードの実装は次のとおりです:

from flask import Flask, jsonify, request
import cv2

app = Flask(__name__)

@app.route('/')
def index():
    return "Welcome to the Computer Vision Server!"

@app.route('/api/gray', methods=['POST'])
def gray():
    # 读取上传的图像文件
    img_file = request.files['image']
    img = cv2.imdecode(np.fromstring(img_file.read(), np.uint8), cv2.IMREAD_COLOR)
    # 转换图像格式为灰度
    gray_img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
    # 将灰度图像转换为PNG格式,便于在web上显示
    _, encoded_img = cv2.imencode('.png', gray_img)
    response = {'image': encoded_img.tobytes()}
    return jsonify(response)

@app.route('/api/resize', methods=['POST'])
def resize():
    # 读取上传的图像文件
    img_file = request.files['image']
    img = cv2.imdecode(np.fromstring(img_file.read(), np.uint8), cv2.IMREAD_COLOR)
    # 获取传递的参数
    width = int(request.form['width'])
    height = int(request.form['height'])
    # 缩放图像
    resized_img = cv2.resize(img, (width, height))
    # 将缩放后的图像转换为PNG格式,便于在web上显示
    _, encoded_img = cv2.imencode('.png', resized_img)
    response = {'image': encoded_img.tobytes()}
    return jsonify(response)

if __name__ == "__main__":
    app.run(debug=True, host='0.0.0.0')

コードを実行し、サーバーを起動します。

テストサーバー

  1. POST リクエストを使用して、サーバー上に構築したばかりの API インターフェイスをテストできます。
たとえば、Postman を使用して画像をサーバーに送信し、「/api/gray」インターフェイスを呼び出して画像をグレースケールに変換できます。

同様に、「/api/resize」インターフェイスを呼び出して画像を拡大縮小することもできます。

上記の方法により、コンピュータ ビジョン サーバーの API インターフェイスを簡単にテストし、サーバー側で画像処理機能を実現できます。

概要

  1. この記事では、Python と OpenCV フレームワークを使用してコンピューター ビジョン サーバーを構築する方法を紹介します。基本的な画像処理関数を API インターフェイスにカプセル化することで、ユーザーはこれらの関数を Web 上で簡単に呼び出すことができます。同時に、コンピュータビジョン技術には幅広い応用シナリオがあり、画像認識、インテリジェント監視などの多くの分野にこれらの技術を応用できます。

以上がPython サーバー プログラミング: OpenCV を使用したコンピューター ビジョンの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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