Etude de base d'OpenCV avec Python

Outline

  1. Créer un environnement --Génération d'images --Charger l'image

Créer un environnement

Oui bien. Je dois étudier correctement le traitement d'image. .. !! Ce serait openCV! Où je pensais Il est difficile de créer un environnement pour jouer avec openCV. Des gens ordinaires. Je vais jouer avec python pour le moment. La composition est

(Mac OSX Yosemite 10.10.5,Python 2.7.11,opencv 2.4.12)

est. Je regrette que ce ne soit pas cette fois. .. Comme il y a beaucoup d'informations écrites dans opencv2 en python2.7, cela peut suffire à étudier pour le moment. Dans mon cas, pyenv-virtualenv a été utilisé dans les homebrew il y a longtemps. Je suis désolé si vous n'avez pas besoin de gestion de version. Créer un environnement pyenv-virtualenv avec Homebrew sur Mac Peut-être que vous pouvez le faire si vous faites référence à cela.

Une fois l'environnement pyenv créé Accédez au répertoire que vous souhaitez étudier

cd ~/study/st_opencv/

pyenv install anaconda-2.1.0
pyenv local anaconda-2.1.0
pyenv rehash

~~Après l'installation
conda install -c https://conda.binstar.org/jjhelmus opencv

Dorya. Vous pouvez maintenant jouer avec opencv. Trop facile Merci ici La façon la plus simple d'utiliser OpenCV avec python

Génération d'images

import numpy as np
import cv2

r = 0
g = 0
b = 255

width = 480
height = 360
pixel = np.array([b,g,r],np.uint8)
wGrid = np.array([pixel]*width,np.uint8)
newImg = np.array([wGrid]*height,np.uint8)

cv2.imshow('generate img',newImg)
cv2.imwrite('createimg.png',newImg)
cv2.waitKey(0)

画像

Chargement d'image

# -*- coding: utf-8 -*-
import cv2, matplotlib
import numpy as np
import matplotlib.pyplot as plt

img = cv2.imread('sample.png')

cv2.imshow('result',img)
cv2.waitKey(0)

画像

Obtenez la couleur moyenne de l'image

# -*- coding: utf-8 -*-
import cv2, matplotlib
import numpy as np
import matplotlib.pyplot as plt

img = cv2.imread('sample.png')

average_color_per_row = np.average(img, axis=0)
average_color = np.average(average_color_per_row, axis=0)
average_color = np.uint8(average_color)
average_color_img = np.array([[average_color]*500]*500, np.uint8)


cv2.imshow('average',average_color_img)
cv2.imwrite('avarage.png',average_color_img)
cv2.waitKey(0)

画像

Ajustez les pixels

# -*- coding: utf-8 -*-
import cv2, matplotlib
import numpy as np
import matplotlib.pyplot as plt

###
#Accès aux pixels
###

cols = 640
rows = 480

#Génération d'images
image = cv2.imread('sample.png')

# print image
print image[0,1]

width = image.shape[0]
height = image.shape[1]
amount = 2.0

#Jouez avec chaque pixel.
for x in xrange(0,width):
  for y in xrange(0,height):
    pixel = image[x,y]
    b = pixel[0]
    g = pixel[1]
    r = pixel[2]

    if x < width/2 and y < height/2:
      color = np.array([b,g,r*amount],np.uint8)
    elif x > width/2 and y < height/2:
      color = np.array([b,g*amount,r],np.uint8)
    elif x < width/2 and y > height/2:
      color = np.array([b*amount,g,r],np.uint8)
    else:
      color = np.array([b*amount,g*amount,r*amount],np.uint8)

    image[x,y] = color
    # image[x,y] = color
# image[0:150,0:110] = [0, 255, 128]
cv2.imshow('image',image)
cv2.imwrite('access_pixel.png',image)

cv2.waitKey(0)

画像

garniture

# -*- coding: utf-8 -*-
import cv2, matplotlib
import numpy as np
import matplotlib.pyplot as plt

###
#Accès aux pixels
###

#Génération d'images
image = cv2.imread('sample.png')

x = 200
y = 180
width = 150
height = 120

dstImg = image[y:y+height,x:x+width]

cv2.imshow('image',image)
cv2.imshow('dst',dstImg)

cv2.imwrite('trimming.png',dstImg)
cv2.waitKey(0)

画像

redimensionner

# -*- coding: utf-8 -*-
import cv2, matplotlib
import numpy as np
import matplotlib.pyplot as plt

###
#Accès aux pixels
###

#Génération d'images
image = cv2.imread('sample.png')

width = image.shape[0]
height = image.shape[1]
resizeImg = cv2.resize(image,(height/2,width/2))
cv2.imshow('original',image )
cv2.imshow('resize',resizeImg)
cv2.imwrite('resize.png',resizeImg)
cv2.waitKey(0)

画像

Ajouter

# -*- coding: utf-8 -*-
import cv2, matplotlib
import numpy as np
import matplotlib.pyplot as plt

###
#Accès aux pixels
###

#Génération d'images
sample1 = cv2.imread('addsample1.png')
sample2 = cv2.imread('addsample2.png')

width = 300
height = 300

addImg = np.zeros((height,width,3),np.uint8)

for x in xrange(0,width):
  for y in xrange(0,height):
    addpixel = sample1[x,y] + sample2[x,y]
    addImg[x,y] = addpixel


cv2.imshow('add',addImg)
cv2.imwrite('add.png',addImg)
cv2.waitKey(0)

Image Image Image

Conversion d'affine

# -*- coding: utf-8 -*-
import cv2
import numpy as np

img = cv2.imread('sample.png')

# cv2.imshow('image',img)

width = img.shape[1]
height = img.shape[0]
center = tuple(np.array([width/2, height/2]))
size = tuple(np.array([width,height]))

#Une amende qui ne précise pas l'axe de rotation
#L'angle que vous souhaitez faire pivoter
rad = 45*np.pi/180
movX = 10
movY = 10

matrix = [
  [np.cos(rad),-1*np.sin(rad),movX],
  [np.sin(rad),np.cos(rad),movY]
]

afMat = np.float32(matrix)

#Une amende qui spécifie l'axe de rotation
angle = 45
scale = 1.0
rotMat = cv2.getRotationMatrix2D(center,angle,scale)

# afnImg = cv2.warpAffine(img,afMat,size,flags=cv2.INTER_LINEAR)
afnImg = cv2.warpAffine(img,rotMat,size,flags=cv2.INTER_CUBIC)
cv2.imshow('affine image',afnImg)
cv2.imwrite('affine.png',afnImg)
cv2.waitKey(0)
cv2.destroyAllWindows()

画像

Inverser

# -*- coding: utf-8 -*-
import cv2
import numpy as np

img = cv2.imread('sample.png')
rimg = img.copy()
fimg = img.copy()
rimg = cv2.flip(img,1)
fimg = cv2.flip(img,0)

cv2.imshow('Original',img)
cv2.imshow('Vertical',rimg)
cv2.imshow('Horizontal',fimg)

cv2.imwrite('flip-vertical.png',rimg)
cv2.imwrite('flip-horizontal.png',fimg)


cv2.waitKey(0)
cv2.destroyAllWindows()

Retourner à l'envers 画像

Retourner à gauche et à droite 画像

Conversion de l'échelle de gris

# -*- coding: utf-8 -*-
import cv2, matplotlib
import numpy as np
import matplotlib.pyplot as plt

img = cv2.imread('sample.png')

gray = cv2.cvtColor(img,cv2.COLOR_RGB2GRAY)
cv2.imshow('result',gray)
cv2.imwrite('grey.png',gray)
cv2.waitKey(0)

画像

Utilisez la fonction de dessin Circle.

import cv2
import numpy as np

img = cv2.imread('sample.png')
w = 400
h = 300

plane = np.zeros([300,500],np.uint8)
center = tuple([plane.shape[1]/2,plane.shape[0]/2])
radius = 100
color = tuple([255,0,0])
thickness = 2
cv2.circle(plane,center,radius,color,thickness)
cv2.imshow('plane',plane)
cv2.imwrite('circle.png',plane)
cv2.waitKey(0)

画像

Extraction de couleur

# -*- coding: utf-8 -*-
import cv2
import numpy as np
original = cv2.imread('sample.png', 1)
img = original.copy()
dst = np.zeros(img.shape,np.uint8)

hsv = cv2.cvtColor(img,cv2.COLOR_BGR2HSV)

colorRange = [0,10]
thanSaturate = 0
thanValue = 0

for x in xrange(0,img.shape[1]):
  for y in xrange(0,img.shape[0]):
    # HSV
    if hsv[y,x][0] >= colorRange[0] and hsv[y,x][0] < colorRange[1] and hsv[y,x][1] > thanSaturate and hsv[y,x][2] > thanValue:
      radius = 1
      color = tuple([255,0,0])
      thicness = 1
      cv2.circle(img,tuple([x,y]),radius,color,thicness)

      dst[y,x] = img[y,x]

cv2.imshow('Original',original)
cv2.imshow('Add',img)
cv2.imshow('Diff',dst)
cv2.imwrite('add.png',img)
cv2.imwrite('diff.png',dst)
cv2.waitKey(0)

Original 画像
Extraction 画像
Add 画像

Remplacement du canal de couleur

import cv2
import numpy as np
import matplotlib
import matplotlib.pyplot as plt

img = cv2.imread('sample.png')
bgr = cv2.split(img)

blue = bgr[0]
green = bgr[1]
red = bgr[2]

# plt.add(blue)
# plt.show(blue)

changeChannel = cv2.merge([red,green,blue])

cv2.imshow('changeChannel',changeChannel)
cv2.imwrite('changeChannel.png',changeChannel)
cv2.waitKey(0)

画像


Cliquez ici pour la source github Il y a probablement une suite parce qu'étudier est sans fin. Je fais également référence à divers sites. Merci tout le monde.

Recommended Posts

Etude de base d'OpenCV avec Python
[Python] Utilisation d'OpenCV avec Python (basique)
Connaissance de base de Python
"Traitement Apple" avec OpenCV3 + Python3
Authentification BASIC avec bouteille Python
Édition d'image avec python OpenCV
Capture de caméra avec Python + OpenCV
Détection de visage avec Python + OpenCV
[Python] [SQLite3] Exploiter SQLite avec Python (basique)
Utilisation basique de la f-string Python
Utiliser OpenCV avec Python @Mac
[OpenCV / Python] J'ai essayé l'analyse d'image de cellules avec OpenCV
[Windows] [Python] Calibrage de la caméra de l'objectif fisheye avec OpenCV
J'ai essayé la "conversion de morphologie" de l'image avec Python + OpenCV
Construction d'environnement de python et opencv
J'ai essayé la "correction gamma" de l'image avec Python + OpenCV
[Python] Utilisation d'OpenCV avec Python (filtrage d'image)
Réseau neuronal avec OpenCV 3 et Python 3
Scraping avec Selenium en Python (Basic)
[Python] Utilisation d'OpenCV avec Python (transformation d'image)
[Python] Utilisation d'OpenCV avec Python (détection des bords)
J'ai écrit la grammaire de base de Python dans Jupyter Lab
Premiers pas avec Python Bases de Python
Programmation facile Python + OpenCV avec Canopy
Jeu de vie avec Python! (Le jeu de la vie de Conway)
10 fonctions du "langage avec batterie" python
Essayez la reconnaissance faciale avec python + OpenCV
Découpez le visage avec Python + OpenCV
1. Statistiques apprises avec Python 1-1. Statistiques de base (Pandas)
Reconnaissance faciale avec caméra avec opencv3 + python2.7
Charger une image gif avec Python + OpenCV
Implémentation de la méthode Dyxtra par python
Utiliser OpenCV avec Python 3 dans Window
Dessinez une illustration avec Python + OpenCV
Estimer la posture du marqueur AR avec Python + OpenCV + drone
Résumé de base de la manipulation de données avec Python Pandas - Première moitié: création et manipulation de données
Suivre les balles de baseball avec Python + OpenCV
Segmentation basée sur un graphique avec Python + OpenCV
[Python] Lecture facile des fichiers image du numéro de série avec OpenCV
Dessinez une flèche (vecteur) avec opencv / python
[OpenCV; Python] Résumé de la fonction findcontours
L'extraction de couleur avec Python + OpenCV a résolu le mystère du fond vert
[Exemple d'amélioration de Python] Apprentissage de Python avec Codecademy
Détection de visage avec Python + OpenCV (rotation invariante)
Premiers pas avec python3 # 1 Apprenez les connaissances de base
[Python] Compte-rendu de la réunion d'étude pour les débutants (7/15)
Exécuter le script Python avec TS-220 cron
Enregistrer la vidéo image par image avec Python OpenCV
Vérifier l'existence du fichier avec python
Capturer des images avec Pupil, python et OpenCV
Obstrué par la mise à jour Python de la console GCP ①
Introduction facile de la reconnaissance vocale avec Python
J'ai essayé le rendu non réaliste avec Python + opencv
Traitement d'image avec Python et OpenCV [Tone Curve]
Acquisition d'images depuis une caméra avec Python + OpenCV
Apprendre Python! Comparaison avec Java (fonction de base)
[python, openCV] base64 Reconnaissance faciale dans les images
Grammaire de base de la série Python3 (chaîne de caractères)
UnicodeEncodeError lutte avec la sortie standard de python3