Grundlegendes Studium von OpenCV mit Python

Outline

  1. Erstellen einer Umgebung --Bildgenerierung --Bild laden

Eine Umgebung schaffen

Ja, schon. Ich muss die Bildverarbeitung richtig studieren. .. !! Das wäre openCV! Wo ich dachte Es ist schwierig, eine Umgebung für das Spielen mit openCV einzurichten. Gewöhnliche Leute. Ich werde vorerst mit Python spielen. Die Zusammensetzung ist

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

ist. Ich bedauere, dass es diesmal nicht ist. .. Da in opencv2 in Python2.7 viele Informationen geschrieben sind, kann dies vorerst für das Lernen ausreichen. In meinem Fall wurde pyenv-virtualenv vor langer Zeit in Homebrew verwendet. Es tut mir leid, wenn Sie keine Versionsverwaltung benötigen. Erstellen Sie eine pyenv-virtualenv-Umgebung mit Homebrew auf dem Mac Vielleicht können Sie es tun, wenn Sie sich darauf beziehen.

Sobald die Pyenv-Umgebung erstellt ist Wechseln Sie in das Verzeichnis, das Sie studieren möchten

cd ~/study/st_opencv/

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

~~Nach der Installation
conda install -c https://conda.binstar.org/jjhelmus opencv

Dorya. Jetzt können Sie mit opencv spielen. Zu einfach Danke hier Der einfachste Weg, OpenCV mit Python zu verwenden

Bilderzeugung

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)

画像

Bild wird geladen

# -*- 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)

画像

Erhalten Sie die durchschnittliche Farbe des Bildes

# -*- 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)

画像

Passen Sie die Pixel an

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

###
#Zugriff auf Pixel
###

cols = 640
rows = 480

#Bilderzeugung
image = cv2.imread('sample.png')

# print image
print image[0,1]

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

#Spielen Sie mit jedem 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)

画像

Trimmen

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

###
#Zugriff auf Pixel
###

#Bilderzeugung
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)

画像

Größe ändern

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

###
#Zugriff auf Pixel
###

#Bilderzeugung
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)

画像

Hinzufügen

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

###
#Zugriff auf Pixel
###

#Bilderzeugung
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)

Bild Bild Bild

Affin-Konvertierung

# -*- 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]))

#Eine Geldstrafe, die die Drehachse nicht angibt
#Der Winkel, den Sie drehen möchten
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)

#Eine Geldstrafe, die die Rotationsachse angibt
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()

画像

Umkehren

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

Auf den Kopf stellen 画像

Nach links und rechts drehen 画像

Graustufenumwandlung

# -*- 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)

画像

Verwenden Sie die Zeichenfunktion Kreis.

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)

画像

Farbextraktion

# -*- 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 画像

Farbkanalwechsel

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)

画像


Klicken Sie hier für die Quelle github Es gibt wahrscheinlich eine Fortsetzung, weil das Lernen endlos ist. Ich verweise auch auf verschiedene Seiten. Vielen Dank an alle.

Recommended Posts

Grundlegendes Studium von OpenCV mit Python
[Python] Verwenden von OpenCV mit Python (Basic)
Grundkenntnisse in Python
"Apple-Verarbeitung" mit OpenCV3 + Python3
BASIC-Authentifizierung mit Python-Flasche
Bildbearbeitung mit Python OpenCV
Kameraerfassung mit Python + OpenCV
Gesichtserkennung mit Python + OpenCV
[Python] [SQLite3] Betreiben Sie SQLite mit Python (Basic)
Grundlegende Verwendung von Python-F-String
Verwenden von OpenCV mit Python @Mac
[OpenCV / Python] Ich habe versucht, Bilder mit OpenCV zu analysieren
[Windows] [Python] Kamerakalibrierung des Fischaugenobjektivs mit OpenCV
Ich habe versucht, das Bild mit Python + OpenCV "morphologisch zu konvertieren"
Umgebungskonstruktion von Python und OpenCV
Ich habe versucht, das Bild mit Python + OpenCV "gammakorrektur" zu machen
[Python] Verwenden von OpenCV mit Python (Bildfilterung)
Neuronales Netzwerk mit OpenCV 3 und Python 3
Scraping mit Selen in Python (Basic)
[Python] Verwenden von OpenCV mit Python (Bildtransformation)
[Python] Verwenden von OpenCV mit Python (Kantenerkennung)
Ich habe die grundlegende Grammatik von Python in Jupyter Lab geschrieben
Erste Schritte mit Python Grundlagen von Python
Einfache Python + OpenCV-Programmierung mit Canopy
Lebensspiel mit Python! (Conways Spiel des Lebens)
10 Funktionen von "Sprache mit Batterie" Python
Versuchen Sie die Gesichtserkennung mit Python + OpenCV
Schneiden Sie das Gesicht mit Python + OpenCV aus
1. Mit Python 1-1 gelernte Statistiken. Grundlegende Statistiken (Pandas)
Gesichtserkennung mit Kamera mit opencv3 + python2.7
Laden Sie das GIF-Bild mit Python + OpenCV
Implementierung der Dyxtra-Methode durch Python
Verwenden Sie OpenCV mit Python 3 in Window
Zeichnen Sie eine Illustration mit Python + OpenCV
Schätzen Sie die Haltung des AR-Markers mit Python + OpenCV + Drohne
Grundlegende Zusammenfassung der Datenoperationen mit Python Pandas - Erste Hälfte: Datenerstellung und -operationen
Verfolgen Sie Baseballbälle mit Python + OpenCV
Graphbasierte Segmentierung mit Python + OpenCV
[Python] Mit OpenCV können Sie problemlos Bilddateien mit Seriennummern lesen
Zeichnen Sie einen Pfeil (Vektor) mit opencv / python
[OpenCV; Python] Zusammenfassung der Funktion findcontours
Die Farbextraktion mit Python + OpenCV löste das Rätsel des grünen Hintergrunds
[Beispiel für eine Python-Verbesserung] Python mit Codecademy lernen
Gesichtserkennung mit Python + OpenCV (invariante Rotation)
Erste Schritte mit Python3 # 1 Grundkenntnisse erlernen
[Python] Protokoll des Studientreffens für Anfänger (7/15)
Führen Sie das Python-Skript mit TS-220 cron aus
Speichern Sie Videos Frame für Frame mit Python OpenCV
Überprüfen Sie die Existenz der Datei mit Python
Bilder mit Pupil, Python und OpenCV aufnehmen
Verstopft mit Python-Update der GCP-Konsole ①
Einfache Einführung der Spracherkennung mit Python
Ich habe versucht, mit Python + opencv nicht realistisch zu rendern
Bildverarbeitung mit Python & OpenCV [Tonkurve]
Bildaufnahme von der Kamera mit Python + OpenCV
Python lernen! Vergleich mit Java (Grundfunktion)
[python, openCV] base64 Gesichtserkennung in Bildern
Grundlegende Grammatik der Python3-Reihe (Zeichenkette)
UnicodeEncodeError hat Probleme mit der Standardausgabe von Python3