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.
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
Seterusnya, kami akan menggunakan OpenCV untuk melaksanakan beberapa fungsi pemprosesan imej asas, seperti:
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.
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.
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.
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!