Maison  >  Article  >  développement back-end  >  Méthode d'implémentation simple sur une planche à dessin pour le traitement d'images Python

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

coldplay.xixi
coldplay.xixiavant
2020-08-07 15:55:022970parcourir

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

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer