Rumah >pembangunan bahagian belakang >Tutorial Python >Pengaturcaraan Pelayan Python: Penglihatan Komputer dengan OpenCV

Pengaturcaraan Pelayan Python: Penglihatan Komputer dengan OpenCV

WBOY
WBOYasal
2023-06-18 20:57:461577semak imbas

Dengan perkembangan pesat teknologi komputer, bidang penglihatan komputer telah menjadi bidang perhatian bagi lebih ramai pengaturcara Python. Artikel ini akan memperkenalkan cara menggunakan Python dan rangka kerja OpenCV untuk membina pelayan penglihatan komputer untuk melaksanakan beberapa fungsi pemprosesan imej asas.

  1. Pasang OpenCV

Untuk menggunakan OpenCV bagi pembangunan penglihatan komputer, anda perlu memasang perpustakaan OpenCV dalam Python terlebih dahulu. Terdapat banyak kaedah pemasangan. Berikut adalah kaedah yang agak mudah:

Masukkan arahan berikut pada baris arahan:

pip install opencv-python

Selain itu, anda juga boleh memilih untuk memasang modul OpenCV yang lain, seperti :

pip install opencv-contrib-python
  1. Melaksanakan fungsi pemprosesan imej

Seterusnya, kami akan menggunakan OpenCV untuk melaksanakan beberapa fungsi pemprosesan imej asas, seperti:

  • Baca Fail Imej
  • Paparkan imej
  • Tukar format imej
  • Pangkas imej
  • Skalakan imej
  • Tapis imej
  • Imej Tukar kepada skala kelabu

Berikut ialah pelaksanaan kod:

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()

Kod ini akan membaca fail imej bernama "test.jpg" dan melaksanakan fungsi pemprosesan imej asas di atas.

  1. Membina pelayan penglihatan komputer berdasarkan Flask

Seterusnya, kami akan menggunakan Flask, rangka kerja web Python, untuk membina pelayan penglihatan komputer ringkas yang menyepadukan imej di atas fungsi pemprosesan Dikapsulkan dalam bentuk antara muka API.

Berikut ialah pelaksanaan kod:

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')

Jalankan kod dan mulakan pelayan.

  1. Pelayan Uji

Kami boleh menggunakan permintaan POST untuk menguji antara muka API yang baru kami bina pada pelayan.

Sebagai contoh, kami boleh menggunakan Posmen untuk menghantar imej ke pelayan dan memanggil antara muka "/api/gray" untuk menukar imej kepada skala kelabu.

Begitu juga, kita juga boleh memanggil antara muka "/api/resize" untuk mengubah saiz imej.

Melalui kaedah di atas, kami boleh dengan mudah menguji antara muka API pelayan penglihatan komputer dan merealisasikan fungsi pemprosesan imej pada bahagian pelayan.

  1. Ringkasan

Artikel ini memperkenalkan cara membina pelayan penglihatan komputer menggunakan Python dan rangka kerja OpenCV. Dengan merangkum fungsi pemprosesan imej asas ke dalam antara muka API, pengguna boleh memanggil fungsi ini dengan mudah di web. Pada masa yang sama, teknologi penglihatan komputer mempunyai pelbagai senario aplikasi, dan kami boleh menggunakan teknologi ini dalam banyak bidang, seperti pengecaman imej, pemantauan pintar, dsb.

Atas ialah kandungan terperinci Pengaturcaraan Pelayan Python: Penglihatan Komputer dengan OpenCV. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn