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

Programmation serveur Python : vision par ordinateur avec OpenCV

Jun 18, 2023 pm 08:57 PM
计算机视觉 opencv python服务器

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
Copier après la connexion

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

pip install opencv-contrib-python
Copier après la connexion
  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()
Copier après la connexion

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')
Copier après la connexion

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 de ce site Web
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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

La différence entre les algorithmes de détection de cible à une étape et à deux étapes La différence entre les algorithmes de détection de cible à une étape et à deux étapes Jan 23, 2024 pm 01:48 PM

La détection d'objets est une tâche importante dans le domaine de la vision par ordinateur, utilisée pour identifier des objets dans des images ou des vidéos et localiser leur emplacement. Cette tâche est généralement divisée en deux catégories d'algorithmes, à une étape et à deux étapes, qui diffèrent en termes de précision et de robustesse. Algorithme de détection de cible en une seule étape L'algorithme de détection de cible en une seule étape convertit la détection de cible en un problème de classification. Son avantage est qu'il est rapide et peut terminer la détection en une seule étape. Cependant, en raison d'une simplification excessive, la précision n'est généralement pas aussi bonne que celle de l'algorithme de détection d'objets en deux étapes. Les algorithmes courants de détection d'objets en une seule étape incluent YOLO, SSD et FasterR-CNN. Ces algorithmes prennent généralement l’image entière en entrée et exécutent un classificateur pour identifier l’objet cible. Contrairement aux algorithmes traditionnels de détection de cibles en deux étapes, ils n'ont pas besoin de définir des zones à l'avance, mais de prédire directement

Installez rapidement le guide d'étude OpenCV à l'aide du gestionnaire de packages pip Installez rapidement le guide d'étude OpenCV à l'aide du gestionnaire de packages pip Jan 18, 2024 am 09:55 AM

Utilisez la commande pip pour installer facilement le didacticiel OpenCV, qui nécessite des exemples de code spécifiques. OpenCV (OpenSource Computer Vision Library) est une bibliothèque de vision par ordinateur open source. Elle contient un grand nombre d'algorithmes et de fonctions de vision par ordinateur, qui peuvent aider les développeurs à créer rapidement des images. et applications liées au traitement vidéo. Avant d'utiliser OpenCV, nous devons d'abord l'installer. Heureusement, Python fournit un outil puissant pour gérer les bibliothèques tierces.

Tutoriel d'installation d'OpenCV : un incontournable pour les utilisateurs de PyCharm Tutoriel d'installation d'OpenCV : un incontournable pour les utilisateurs de PyCharm Feb 22, 2024 pm 09:21 PM

OpenCV est une bibliothèque open source pour la vision par ordinateur et le traitement d'images, largement utilisée dans l'apprentissage automatique, la reconnaissance d'images, le traitement vidéo et d'autres domaines. Lors du développement à l'aide d'OpenCV, afin de mieux déboguer et exécuter des programmes, de nombreux développeurs choisissent d'utiliser PyCharm, un puissant environnement de développement intégré Python. Cet article fournira aux utilisateurs de PyCharm un didacticiel d'installation pour OpenCV, avec des exemples de code spécifiques. Première étape : installer Python Tout d’abord, assurez-vous que Python est installé

Application de la technologie de l'IA à la reconstruction d'images en super-résolution Application de la technologie de l'IA à la reconstruction d'images en super-résolution Jan 23, 2024 am 08:06 AM

La reconstruction d'images en super-résolution est le processus de génération d'images haute résolution à partir d'images basse résolution à l'aide de techniques d'apprentissage en profondeur, telles que les réseaux neuronaux convolutifs (CNN) et les réseaux contradictoires génératifs (GAN). Le but de cette méthode est d'améliorer la qualité et les détails des images en convertissant des images basse résolution en images haute résolution. Cette technologie trouve de nombreuses applications dans de nombreux domaines, comme l’imagerie médicale, les caméras de surveillance, les images satellites, etc. Grâce à la reconstruction d’images en super-résolution, nous pouvons obtenir des images plus claires et plus détaillées, ce qui permet d’analyser et d’identifier plus précisément les cibles et les caractéristiques des images. Méthodes de reconstruction Les méthodes de reconstruction d'images en super-résolution peuvent généralement être divisées en deux catégories : les méthodes basées sur l'interpolation et les méthodes basées sur l'apprentissage profond. 1) Méthode basée sur l'interpolation Reconstruction d'images en super-résolution basée sur l'interpolation

Comment utiliser la technologie IA pour restaurer d'anciennes photos (avec exemples et analyse de code) Comment utiliser la technologie IA pour restaurer d'anciennes photos (avec exemples et analyse de code) Jan 24, 2024 pm 09:57 PM

La restauration de photos anciennes est une méthode d'utilisation de la technologie de l'intelligence artificielle pour réparer, améliorer et améliorer de vieilles photos. Grâce à des algorithmes de vision par ordinateur et d’apprentissage automatique, la technologie peut identifier et réparer automatiquement les dommages et les imperfections des anciennes photos, les rendant ainsi plus claires, plus naturelles et plus réalistes. Les principes techniques de la restauration de photos anciennes incluent principalement les aspects suivants : 1. Débruitage et amélioration de l'image Lors de la restauration de photos anciennes, elles doivent d'abord être débruitées et améliorées. Des algorithmes et des filtres de traitement d'image, tels que le filtrage moyen, le filtrage gaussien, le filtrage bilatéral, etc., peuvent être utilisés pour résoudre les problèmes de bruit et de taches de couleur, améliorant ainsi la qualité des photos. 2. Restauration et réparation d'images Les anciennes photos peuvent présenter certains défauts et dommages, tels que des rayures, des fissures, une décoloration, etc. Ces problèmes peuvent être résolus par des algorithmes de restauration et de réparation d’images

Algorithme SIFT (Scale Invariant Features) Algorithme SIFT (Scale Invariant Features) Jan 22, 2024 pm 05:09 PM

L'algorithme SIFT (Scale Invariant Feature Transform) est un algorithme d'extraction de caractéristiques utilisé dans les domaines du traitement d'images et de la vision par ordinateur. Cet algorithme a été proposé en 1999 pour améliorer les performances de reconnaissance et de correspondance d'objets dans les systèmes de vision par ordinateur. L'algorithme SIFT est robuste et précis et est largement utilisé dans la reconnaissance d'images, la reconstruction tridimensionnelle, la détection de cibles, le suivi vidéo et d'autres domaines. Il obtient l'invariance d'échelle en détectant les points clés dans plusieurs espaces d'échelle et en extrayant des descripteurs de caractéristiques locales autour des points clés. Les principales étapes de l'algorithme SIFT comprennent la construction d'un espace d'échelle, la détection des points clés, le positionnement des points clés, l'attribution de directions et la génération de descripteurs de caractéristiques. Grâce à ces étapes, l’algorithme SIFT peut extraire des fonctionnalités robustes et uniques, permettant ainsi un traitement d’image efficace.

Comment tracer des lignes avec des flèches dans OpenCV en utilisant Java ? Comment tracer des lignes avec des flèches dans OpenCV en utilisant Java ? Aug 20, 2023 pm 02:41 PM

Le package org.opencv.imgproc de la bibliothèque JavaOpenCV contient une classe appelée Imgproc qui fournit diverses méthodes pour traiter les images d'entrée. Il fournit un ensemble de méthodes pour dessiner des formes géométriques sur des images. Pour tracer une ligne fléchée, vous devez appeler la méthode arrowedLine() de cette classe. La méthode accepte les paramètres suivants : un objet Mat représentant l'image sur laquelle la ligne doit être tracée. Un objet Point représentant deux points entre des lignes. draw. Un objet scalaire représentant la couleur de la ligne. (BGR) Un entier représentant l'épaisseur de la ligne (par défaut : 1). Exemple importorg.opencv.core.Core;importation

Interprétation du concept de suivi de cible en vision par ordinateur Interprétation du concept de suivi de cible en vision par ordinateur Jan 24, 2024 pm 03:18 PM

Le suivi d'objets est une tâche importante en vision par ordinateur et est largement utilisé dans la surveillance du trafic, la robotique, l'imagerie médicale, le suivi automatique des véhicules et d'autres domaines. Il utilise des méthodes d'apprentissage profond pour prédire ou estimer la position de l'objet cible dans chaque image consécutive de la vidéo après avoir déterminé la position initiale de l'objet cible. Le suivi d'objets a un large éventail d'applications dans la vie réelle et revêt une grande importance dans le domaine de la vision par ordinateur. Le suivi d'objets implique généralement le processus de détection d'objets. Voici un bref aperçu des étapes de suivi des objets : 1. Détection d'objets, où l'algorithme classe et détecte les objets en créant des cadres de délimitation autour d'eux. 2. Attribuez une identification (ID) unique à chaque objet. 3. Suivez le mouvement des objets détectés dans des images tout en stockant les informations pertinentes. Types de cibles de suivi de cible

See all articles