Maison  >  Article  >  développement back-end  >  Programmation serveur Python : vision par ordinateur avec OpenCV

Programmation serveur Python : vision par ordinateur avec OpenCV

WBOY
WBOYoriginal
2023-06-18 20:57:461544parcourir

Avec le développement rapide de la technologie informatique, le domaine de la vision par ordinateur est devenu un domaine de préoccupation pour de plus en plus de programmeurs Python. Cet article expliquera comment utiliser Python et le framework OpenCV pour créer un serveur de vision par ordinateur afin d'implémenter certaines fonctions de base de traitement d'image.

  1. Installer OpenCV

Pour utiliser OpenCV pour le développement de vision par ordinateur, vous devez d'abord installer la bibliothèque OpenCV en Python. Il existe de nombreuses méthodes d'installation. Voici une méthode relativement simple :

Entrez la commande suivante dans la ligne de commande :

pip install opencv-python

De plus, vous pouvez également choisir d'installer d'autres modules OpenCV, tels que :

pip install opencv-contrib-python
  1. Pour implémenter l'image. fonctions de traitement

Ensuite, nous utiliserons OpenCV pour implémenter certaines fonctions de traitement d'image de base, telles que :

  • Lire le fichier image
  • Afficher l'image
  • Convertir le format de l'image
  • Recadrer l'image
  • Redimensionner l'image
  • Filtrer l'image
  • Image Convertir en niveaux de gris

Voici l'implémentation du code :

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

Ce code lira le fichier image nommé "test.jpg" et implémentera les fonctions de traitement d'image de base ci-dessus.

  1. Création d'un serveur de vision par ordinateur basé sur Flask

Ensuite, nous utiliserons Flask, le framework Web Python, pour créer un serveur de vision par ordinateur simple et encapsuler les fonctions de traitement d'image ci-dessus sous la forme d'une interface API.

Voici l'implémentation du code :

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

Exécutez le code et démarrez le serveur.

  1. Test Server

Nous pouvons utiliser les requêtes POST pour tester l'interface API que nous venons de construire sur le serveur.

Par exemple, nous pouvons utiliser Postman pour envoyer une image au serveur et appeler l'interface "/api/gray" pour convertir l'image en niveaux de gris.

De même, nous pouvons également appeler l'interface "/api/resize" pour redimensionner l'image.

Grâce à la méthode ci-dessus, nous pouvons facilement tester l'interface API du serveur de vision par ordinateur et implémenter la fonction de traitement d'image côté serveur.

  1. Résumé

Cet article présente comment créer un serveur de vision par ordinateur à l'aide de Python et du framework OpenCV. En encapsulant les fonctions de base de traitement d’images dans des interfaces API, les utilisateurs peuvent facilement appeler ces fonctions sur le Web. Dans le même temps, la technologie de vision par ordinateur offre un large éventail de scénarios d’application et nous pouvons appliquer ces technologies dans de nombreux domaines, tels que la reconnaissance d’images, la surveillance intelligente, etc.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn