recherche
Maisondéveloppement back-endTutoriel PythonComment extraire deux zones circulaires à partir d'une image de 9000x7000 pixels en utilisant Python et OpenCV?

Comment extraire deux zones circulaires à partir d'une image de 9000x7000 pixels en utilisant Python et OpenCV?

Python et OpenCV extraire efficacement deux zones circulaires dans des images de pixels 9000x7000

Le traitement des images à ultra-haute résolution (tels que 9000x7000 pixels) et l'extraction de formes spécifiques (telles que les cercles) est un défi commun dans le traitement d'image et la vision par ordinateur. Cet article fournit une solution utilisant des bibliothèques Python et OpenCV pour extraire efficacement et avec précision les zones circulaires cibles.

Le problème avec le code existant est qu'il y a trop de cercles détectés et qu'il est impossible de sélectionner avec précision les deux zones de cercle requises. Pour l'amélioration, nous adopterons les stratégies suivantes:

  1. Prétraitement d'image: mise à l'échelle et réduction du bruit : Premièrement, pour améliorer l'efficacité du traitement, nous réduisons l'image d'origine à la bonne taille. Dans le même temps, un filtre de flou gaussien est appliqué pour réduire le bruit de l'image, améliorant ainsi la précision de la détection circulaire.
 Importer CV2
Importer Numpy comme NP

image_path = r "C: \ Users \ 17607 \ Desktop \ smls images \ pic_20231122151507973.bmp"

# Lire l'image img = cv2.imread (image_path)

# Zoom l'image (ajustez le rapport zoom en fonction de la situation réelle)
scale_percent = 10 # échelle à 1/10 de l'image d'origine
width = int (img.shape [1] / scale_percent)
height = int (img.shape [0] / scale_percent)
dim = (largeur, hauteur)
redimense_img = cv2.resize (img, dim, interpolation = cv2.inter_area)

# GraySCale Conversion Gray = CV2.CVTCOLOR (Residized_IMG, CV2.COLOR_BGR2GRAY)

# GaussianBlurred = Cv2.GaussianBlur (Gray, (5, 5), 0)
  1. Détection des bords: algorithme de pointe : utilisez l'algorithme de détection de bord radieux pour extraire les informations de bord de l'image et préparez-vous à la détection circulaire ultérieure.
 # Bords de détection de bord Canny = CV2.Canny (flou, 50, 150)
  1. Détection du cercle: Transformation de Hough : Utilisez la transformation du cercle Hough pour détecter les cercles en images. La clé est des ajustements de paramètres pour garantir que seuls les deux cercles dont nous avons besoin sont détectés. Ici, nous filtrons selon le rayon du cercle et sélectionnons les deux plus grands cercles.
 # HoughCircle Transform Circles = CV2.HoughCircles (bords, cv2.Hough_gradient, 1, 40, param1 = 50, param2 = 30, Minradius = 0, Maxradius = 0)

Si les cercles ne sont pas nul:
    cercles = np.uint16 (np.around (cercles))
    # Sélectionnez deux plus grands cercles = cercles [0 ,:]
    cercles = cercles [np.argsort (cercles [:, 2]) [:: - 1] [: 2]] # sélectionnez deux cercles avec le plus grand rayon pour i en cercles:
        Center_X, Center_Y, Radius = I
        # Draw Circle CV2.Circle (Residise_IMG, (Centre_X, Center_Y), Radius, (0, 0, 255), 2)
        CV2.Circle (Residized_img, (Centre_X, Center_Y), 2, (255, 0, 0), 3)

    cv2.imshow ("cercles détectés", Residize_img)
    CV2.WaitKey (0)
    cv2.DestRoyAllWindows ()

Grâce aux étapes ci-dessus, nous pouvons extraire efficacement les deux plus grandes régions circulaires à partir d'images haute résolution et les vérifier par les résultats de la visualisation. Il convient de noter que les paramètres de la transformation scale_percent et Hough doivent être ajustés en fonction de l'image réelle pour obtenir le meilleur effet de détection. Si deux cercles sont de taille similaire, un choix plus raffiné peut être requis en fonction des coordonnées centrales ou d'autres fonctionnalités.

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
Comment le choix entre les listes et les tableaux a-t-il un impact sur les performances globales d'une application Python traitant de grands ensembles de données?Comment le choix entre les listes et les tableaux a-t-il un impact sur les performances globales d'une application Python traitant de grands ensembles de données?May 03, 2025 am 12:11 AM

ForhandlingLargedatasetSInpython, UsenumpyArraysforbetterperformance.1) NumpyArraysAremeMory-EfficientAndFasterFornumericalOperations.2) EvitUnneceSsaryTypeConversions.3) Le effet de levier

Expliquez comment la mémoire est allouée aux listes par rapport aux tableaux dans Python.Expliquez comment la mémoire est allouée aux listes par rapport aux tableaux dans Python.May 03, 2025 am 12:10 AM

Inpython, listSusedynamicMemoryallocation withover-allocation, whileLumpyArraySallocateFixedMemory.1) listsallocatemoreMoryThreededEdededInitialement, redimensipwenessary.2) NumpyArraySallocateExactMemoryForElements, offrantwectable usinessflexibilité.

Comment spécifiez-vous le type d'éléments de données dans un tableau Python?Comment spécifiez-vous le type d'éléments de données dans un tableau Python?May 03, 2025 am 12:06 AM

Inpython, YouCanscthedatatatypeyfelemememedenernSspant.1) usenpynernrump.1) usenpynerp.dloatp.ploatm64, formateur préséconstrolatatype.

Qu'est-ce que Numpy et pourquoi est-il important pour l'informatique numérique dans Python?Qu'est-ce que Numpy et pourquoi est-il important pour l'informatique numérique dans Python?May 03, 2025 am 12:03 AM

NumpyissentialFornumericalComputingInpythondutOtsSpeed, MemoryEfficiency et ComprehenSiveMathematicalFunctions.1) It'sfastBecauseitPerformSoperations INC.2) NumpyArraySareMoremory-EfficientThanpythonlists.3)

Discutez du concept de «l'allocation de la mémoire contigu» et de son importance pour les tableaux.Discutez du concept de «l'allocation de la mémoire contigu» et de son importance pour les tableaux.May 03, 2025 am 12:01 AM

ContigusMymoryallocationiscrucialforAraySBauseitallowsforefficient andfastelementAccess.1) iTenablesConstanttimeAccess, o (1), duetoDirectAddressCalculation.2) itimproveScacheefficiendyAllowingMultipleElementFetchesperCacheline.3) itsimplieniesMemorymorymorymorymorymory

Comment coupez-vous une liste de python?Comment coupez-vous une liste de python?May 02, 2025 am 12:14 AM

SlitingyPapyThonListIsDoneUsingTheSyntaxList [Démarrage: arrêt: étape] .He'showitworks: 1) startisheindexofthefirStelementoinclude.2) stopisTheIndexoftheFirstelementsoexclude.3) StepistheincrementBetweenselans.it'susefulfactingPortationSoListShsandCanusegeg

Quelles sont les opérations communes qui peuvent être effectuées sur des tableaux Numpy?Quelles sont les opérations communes qui peuvent être effectuées sur des tableaux Numpy?May 02, 2025 am 12:09 AM

NumpyAllowsForvariousOperations ONARRAYS: 1) BasicarithmeticLikeaddition, Soustraction, Multiplication, anddivision; 2) AdvancedOperationSuchasmatrixMultiplication; 3) Element-Wiseoperations withoutExplicitloop

Comment les tableaux sont-ils utilisés dans l'analyse des données avec Python?Comment les tableaux sont-ils utilisés dans l'analyse des données avec Python?May 02, 2025 am 12:09 AM

ArraySinpython, en particulier ThroughNumpyandPandas, aressentialfordataanalysis, offingspeeedAfficiency.1) numpyarrayablefficienthandlingoflargedatasetsandComplexOperationsLikEMoVingAverages.2)

See all articles

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

SublimeText3 version Mac

SublimeText3 version Mac

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

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

Puissant environnement de développement intégré PHP

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Adaptateur de serveur SAP NetWeaver pour Eclipse

Adaptateur de serveur SAP NetWeaver pour Eclipse

Intégrez Eclipse au serveur d'applications SAP NetWeaver.