隨著電腦科技的快速發展,電腦視覺這個領域也成為了越來越多Python程式設計師們關注的領域。本文將介紹如何使用Python和OpenCV框架來建立一個電腦視覺伺服器,實現一些基本的影像處理功能。
要使用OpenCV進行電腦視覺開發,首先需要在Python中安裝OpenCV函式庫。安裝方式有很多種,這裡介紹一種比較簡單的方式:
在命令列中輸入以下命令:
pip install opencv-python
此外,還可以選擇安裝其他OpenCV的模組,例如:
pip install opencv-contrib-python
接下來,我們將使用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這個Python web框架,建立一個簡單的電腦視覺伺服器,將上述圖像處理功能封裝成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')
執行程式碼,啟動伺服器。
我們可以使用POST請求,在伺服器上測試剛剛建置的API介面。
例如,我們可以使用Postman,向伺服器發送一張圖像,並呼叫“/api/gray”接口,實現將圖像轉換為灰度的功能。
同樣的,我們也可以呼叫“/api/resize”介面縮放圖像。
透過上述方式,我們可以很方便地測試電腦視覺伺服器的API接口,實現伺服器端的影像處理功能。
本文介紹了使用Python和OpenCV框架建立一個電腦視覺伺服器的方法。透過將基本的影像處理功能封裝為API接口,可以讓使用者方便地在web上呼叫這些功能。同時,電腦視覺技術的應用場景非常廣泛,我們可以將這些技術應用在許多領域中,例如影像辨識、智慧監控等。
以上是Python伺服器程式設計:使用OpenCV進行電腦視覺的詳細內容。更多資訊請關注PHP中文網其他相關文章!