Méthode d'implémentation simple sur une planche à dessin pour le traitement d'images Python

coldplay.xixi
Libérer: 2020-08-07 15:55:23
avant
2975 Les gens l'ont consulté

Méthode d'implémentation simple sur une planche à dessin pour le traitement d'images Python

L'exemple de cet article décrit la méthode d'implémentation simple du carnet de croquis du traitement d'image Python. Partagez-le avec tout le monde pour référence, les détails sont les suivants :

Le traitement des images Python est également implémenté en s'appuyant sur l'interface Python d'opencv. Le langage Python est simple, facile à comprendre, concis et clair. Cette fois, pour mettre en œuvre des graffitis sur planche à dessin, la première consiste à dessiner des rectangles et des lignes à l'intérieur. D'autres peuvent également être étendus. Ce cas n'est qu'une routine. L'idée est de gérer les événements de la souris et d'ajuster la couleur de la barre de défilement. Les événements de souris incluent le traitement des événements de pression et de relâchement du bouton gauche.

import cv2
import numpy as np
# null function
def nothing(x):
  pass
Drawing = False
Mode = True
IX,IY = -1,-1
def drawCircle(Event,X,Y,Flags,Param):
  R = cv2.getTrackbarPos('R','Image')
  G = cv2.getTrackbarPos('G','Image')
  B = cv2.getTrackbarPos('B','Image')
#get color value
  Color = (B,G,R);
  global IX,IY,Drawing,Mode
  if Event == cv2.EVENT_LBUTTONDOWN:
    Drawing = True
    IX,IY = X,Y
  elif Event == cv2.EVENT_MOUSEMOVE and Flags == cv2.EVENT_FLAG_LBUTTON:
    if Drawing == True:
      if Mode == True:
        cv2.rectangle(Img,(IX,IY),(X,Y),Color,-1)
      else:
        cv2.circle(Img,(X,Y),3,Color,-1);
  elif Event == cv2.EVENT_LBUTTONUP:
    Drawing = False
#create image with 3 chanels
Img = np.zeros((660,660,3),np.uint8)
#create window
cv2.namedWindow('Image')
#create track bar, range for 0~255
cv2.createTrackbar('R','Image',0,255,nothing)
cv2.createTrackbar('G','Image',0,255,nothing)
cv2.createTrackbar('B','Image',0,255,nothing)
#set mouse ack
cv2.setMouseCallback('Image',drawCircle)
while(1):
  cv2.imshow('Image',Img)
  k = cv2.waitKey(10)&0xFF
  #switch draw mode
  if k == ord('m'):
    Mode = not Mode
  elif k == 27:
    break
#you must destroy all of sources
cv2.destroyAllWindows()
Copier après la connexion

Le rendu final est le suivant :

Recommandations d'apprentissage associées : Tutoriel vidéo python

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!

Étiquettes associées:
source:jb51.net
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal