diff options
-rw-r--r-- | de-de/opencv-de.html.markdown | 93 | ||||
-rw-r--r-- | opencv.html.markdown | 69 | ||||
-rw-r--r-- | zh-cn/opencv-cn.html.markdown | 88 |
3 files changed, 126 insertions, 124 deletions
diff --git a/de-de/opencv-de.html.markdown b/de-de/opencv-de.html.markdown index a2b55439..c39e5a65 100644 --- a/de-de/opencv-de.html.markdown +++ b/de-de/opencv-de.html.markdown @@ -8,11 +8,10 @@ translators: - ["Dennis Keller", "https://github.com/denniskeller"] lang: de-de --- -### OpenCV -OpenCV (Open Source Computer Vision) ist eine Bibliothek von Programmierfunktionen, +OpenCV (Open Source Computer Vision) ist eine Bibliothek von Programmierfunktionen, die hauptsächlich auf maschinelles Sehen in Echtzeit ausgerichtet ist. -Ursprünglich wurde OpenCV von Intel entwickelt. Später wurde es von +Ursprünglich wurde OpenCV von Intel entwickelt. Später wurde es von Willow Garage und dann Itseez (das später von Intel übernommen wurde) unterstützt. OpenCV unterstützt derzeit eine Vielzahl von Sprachen, wie C++, Python, Java uvm. @@ -20,9 +19,9 @@ OpenCV unterstützt derzeit eine Vielzahl von Sprachen, wie C++, Python, Java uv Bitte lies diesen Artikel für die Installation von OpenCV auf deinem Computer. -* Windows Installationsanleitung: [https://opencv-python-tutroals.readthedocs.io/en/latest/py_tutorials/py_setup/py_setup_in_windows/py_setup_in_windows.html#install-opencv-python-in-windows]() -* Mac Installationsanleitung (High Sierra): [https://medium.com/@nuwanprabhath/installing-opencv-in-macos-high-sierra-for-python-3-89c79f0a246a]() -* Linux Installationsanleitung (Ubuntu 18.04): [https://www.pyimagesearch.com/2018/05/28/ubuntu-18-04-how-to-install-opencv]() +* [Windows Installationsanleitung](https://opencv-python-tutroals.readthedocs.io/en/latest/py_tutorials/py_setup/py_setup_in_windows/py_setup_in_windows.html#install-opencv-python-in-windows) +* [Mac Installationsanleitung](https://medium.com/@nuwanprabhath/installing-opencv-in-macos-high-sierra-for-python-3-89c79f0a246a) (High Sierra) +* [Linux Installationsanleitung](https://www.pyimagesearch.com/2018/05/28/ubuntu-18-04-how-to-install-opencv) (Ubuntu 18.04) ### Hier werden wir uns auf die Pythonimplementierung von OpenCV konzentrieren. @@ -33,16 +32,16 @@ img = cv2.imread('Katze.jpg') # Bild darstellen # Die imshow() Funktion wird verwendet um das Display darzustellen. -cv2.imshow('Image',img) +cv2.imshow('Image', img) # Das erste Argument ist der Titel des Fensters und der zweite Parameter ist das Bild # Wenn du den Fehler Object Type None bekommst, ist eventuell dein Bildpfad falsch. # Bitte überprüfe dann den Pfad des Bildes erneut. cv2.waitKey(0) -# waitKey() ist eine Tastaturbindungsfunktion, sie nimmt Argumente in +# waitKey() ist eine Tastaturbindungsfunktion, sie nimmt Argumente in # Millisekunden an. Für GUI Ereignisse MUSST du die waitKey() Funktion verwenden. # Ein Bild schreiben -cv2.imwrite('graueKatze.png',img) +cv2.imwrite('graueKatze.png', img) # Das erste Argument ist der Dateiname und das zweite ist das Bild # Konvertiert das Bild zu Graustufen @@ -51,10 +50,10 @@ gray_image = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) # Videoaufnahme von der Webcam cap = cv2.VideoCapture(0) # 0 ist deine Kamera, wenn du mehrere Kameras hast musst du deren Id eingeben -while(True): +while True: # Erfassen von Einzelbildern _, frame = cap.read() - cv2.imshow('Frame',frame) + cv2.imshow('Frame', frame) # Wenn der Benutzer q drückt -> beenden if cv2.waitKey(1) & 0xFF == ord('q'): break @@ -63,59 +62,60 @@ cap.release() # Wiedergabe von Videos aus einer Datei cap = cv2.VideoCapture('film.mp4') -while(cap.isOpened()): +while cap.isOpened(): _, frame = cap.read() # Das Video in Graustufen abspielen gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) - cv2.imshow('frame',gray) + cv2.imshow('frame', gray) if cv2.waitKey(1) & 0xFF == ord('q'): break cap.release() # Zeichne eine Linie in OpenCV -# cv2.line(img,(x,y),(x1,y1),(color->r,g,b->0 to 255),thickness) -cv2.line(img,(0,0),(511,511),(255,0,0),5) +# cv2.line(img, (x,y), (x1,y1), (color->r,g,b->0 to 255), thickness) +cv2.line(img, (0, 0), (511, 511), (255, 0, 0), 5) # Zeichne ein Rechteck -# cv2.rectangle(img,(x,y),(x1,y1),(color->r,g,b->0 to 255),thickness) +# cv2.rectangle(img, (x,y), (x1,y1), (color->r,g,b->0 to 255), thickness) # thickness = -1 wird zum Füllen des Rechtecks verwendet -cv2.rectangle(img,(384,0),(510,128),(0,255,0),3) +cv2.rectangle(img, (384, 0), (510, 128), (0, 255, 0), 3) # Zeichne ein Kreis -cv2.circle(img,(xCenter,yCenter), radius, (color->r,g,b->0 to 255), thickness) -cv2.circle(img,(200,90), 100, (0,0,255), -1) +# cv2.circle(img, (xCenter,yCenter), radius, (color->r,g,b->0 to 255), thickness) +cv2.circle(img, (200, 90), 100, (0, 0, 255), -1) # Zeichne eine Ellipse -cv2.ellipse(img,(256,256),(100,50),0,0,180,255,-1) +cv2.ellipse(img, (256, 256), (100, 50), 0, 0, 180, 255, -1) # Text auf Bildern hinzufügen -cv2.putText(img,"Hello World!!!", (x,y), cv2.FONT_HERSHEY_SIMPLEX, 2, 255) +cv2.putText(img, "Hello World!!!", (x, y), cv2.FONT_HERSHEY_SIMPLEX, 2, 255) # Bilder zusammenfügen img1 = cv2.imread('Katze.png') img2 = cv2.imread('openCV.jpg') -dst = cv2.addWeighted(img1,0.5,img2,0.5,0) +dst = cv2.addWeighted(img1, 0.5, img2, 0.5, 0) # Schwellwertbild # Binäre Schwellenwerte -_,thresImg = cv2.threshold(img,127,255,cv2.THRESH_BINARY) -# Anpassbare Schwellenwerte -adapThres = cv2.adaptiveThreshold(img,255,cv2.ADAPTIVE_THRESH_GAUSSIAN_C, cv2.THRESH_BINARY,11,2) +_, thresImg = cv2.threshold(img, 127, 255, cv2.THRESH_BINARY) +# Anpassbare Schwellenwerte +adapThres = cv2.adaptiveThreshold(img, 255, cv2.ADAPTIVE_THRESH_GAUSSIAN_C, cv2.THRESH_BINARY, 11, 2) # Weichzeichnung von einem Bild # Gaußscher Weichzeichner -blur = cv2.GaussianBlur(img,(5,5),0) +blur = cv2.GaussianBlur(img, (5, 5), 0) # Rangordnungsfilter -medianBlur = cv2.medianBlur(img,5) +medianBlur = cv2.medianBlur(img, 5) # Canny-Algorithmus -img = cv2.imread('Katze.jpg',0) -edges = cv2.Canny(img,100,200) +img = cv2.imread('Katze.jpg', 0) +edges = cv2.Canny(img, 100, 200) # Gesichtserkennung mit Haarkaskaden # Lade die Haarkaskaden von https://github.com/opencv/opencv/blob/master/data/haarcascades/ herunter import cv2 import numpy as np + face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml') eye_cascade = cv2.CascadeClassifier('haarcascade_eye.xml') @@ -123,31 +123,32 @@ img = cv2.imread('Mensch.jpg') gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) aces = face_cascade.detectMultiScale(gray, 1.3, 5) -for (x,y,w,h) in faces: - cv2.rectangle(img,(x,y),(x+w,y+h),(255,0,0),2) - roi_gray = gray[y:y+h, x:x+w] - roi_color = img[y:y+h, x:x+w] +for x, y, w, h in faces: + cv2.rectangle(img, (x, y), (x + w, y + h), (255, 0, 0), 2) + roi_gray = gray[y : y + h, x : x + w] + roi_color = img[y : y + h, x : x + w] eyes = eye_cascade.detectMultiScale(roi_gray) - for (ex,ey,ew,eh) in eyes: - cv2.rectangle(roi_color,(ex,ey),(ex+ew,ey+eh),(0,255,0),2) + for ex, ey, ew, eh in eyes: + cv2.rectangle(roi_color, (ex, ey), (ex + ew, ey + eh), (0, 255, 0), 2) -cv2.imshow('img',img) +cv2.imshow('img', img) cv2.waitKey(0) cv2.destroyAllWindows() # destroyAllWindows() zerstört alle Fenster -# Wenn du ein bestimmtes Fenster zerstören möchtest, musst du den genauen Namen des +# Wenn du ein bestimmtes Fenster zerstören möchtest, musst du den genauen Namen des # von dir erstellten Fensters übergeben. ``` ### Weiterführende Literatur: -* Lade Kaskade hier herunter [https://github.com/opencv/opencv/blob/master/data/haarcascades]() -* OpenCV Zeichenfunktionen [https://docs.opencv.org/2.4/modules/core/doc/drawing_functions.html]() -* Eine aktuelle Sprachenreferenz kann hier gefunden werden [https://opencv.org]() -* Zusätzliche Ressourcen können hier gefunden werden [https://en.wikipedia.org/wiki/OpenCV]() + +* Lade Kaskade hier herunter [https://github.com/opencv/opencv/blob/master/data/haarcascades](https://github.com/opencv/opencv/blob/master/data/haarcascades) +* OpenCV Zeichenfunktionen [https://docs.opencv.org/2.4/modules/core/doc/drawing_functions.html](https://docs.opencv.org/2.4/modules/core/doc/drawing_functions.html) +* Eine aktuelle Sprachenreferenz kann hier gefunden werden [https://opencv.org](https://opencv.org) +* Zusätzliche Ressourcen können hier gefunden werden [https://en.wikipedia.org/wiki/OpenCV](https://en.wikipedia.org/wiki/OpenCV) * Gute OpenCV Tutorials - * [https://opencv-python-tutroals.readthedocs.io/en/latest/py_tutorials/py_tutorials.html]() - * [https://realpython.com/python-opencv-color-spaces]() - * [https://pyimagesearch.com]() - * [https://www.learnopencv.com]() - * [https://docs.opencv.org/master/]() + * [https://opencv-python-tutroals.readthedocs.io/en/latest/py_tutorials/py_tutorials.html](https://opencv-python-tutroals.readthedocs.io/en/latest/py_tutorials/py_tutorials.html) + * [https://realpython.com/python-opencv-color-spaces](https://realpython.com/python-opencv-color-spaces) + * [https://pyimagesearch.com](https://pyimagesearch.com) + * [https://www.learnopencv.com](https://www.learnopencv.com) + * [https://docs.opencv.org/master/](https://docs.opencv.org/master/) diff --git a/opencv.html.markdown b/opencv.html.markdown index ff91d2a5..9a931bcb 100644 --- a/opencv.html.markdown +++ b/opencv.html.markdown @@ -7,9 +7,9 @@ contributors: --- ### Opencv -OpenCV (Open Source Computer Vision) is a library of programming functions mainly aimed at real-time computer vision. -Originally developed by Intel, it was later supported by Willow Garage then Itseez (which was later acquired by Intel). -Opencv currently supports wide variety of languages like, C++, Python, Java etc +OpenCV (Open Source Computer Vision) is a library of programming functions mainly aimed at real-time computer vision. +Originally developed by Intel, it was later supported by Willow Garage then Itseez (which was later acquired by Intel). +OpenCV currently supports wide variety of languages like, C++, Python, Java etc #### Installation Please refer to these articles for installation of OpenCV on your computer. @@ -27,14 +27,14 @@ img = cv2.imread('cat.jpg') # Displaying the image # imshow() function is used to display the image -cv2.imshow('Image',img) +cv2.imshow('Image', img) # Your first arguement is the title of the window and second parameter is image # If you are getting error, Object Type None, your image path may be wrong. Please recheck the pack to the image cv2.waitKey(0) # waitKey() is a keyboard binding function and takes arguement in milliseconds. For GUI events you MUST use waitKey() function. # Writing an image -cv2.imwrite('catgray.png',img) +cv2.imwrite('catgray.png', img) # first arguement is the file name and second is the image # Convert image to grayscale @@ -42,11 +42,11 @@ gray_image = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) # Capturing Video from Webcam cap = cv2.VideoCapture(0) -#0 is your camera, if you have multiple camera, you need to enter their id -while(True): +# 0 is your camera, if you have multiple camera, you need to enter their id +while True: # Capturing frame-by-frame _, frame = cap.read() - cv2.imshow('Frame',frame) + cv2.imshow('Frame', frame) # When user presses q -> quit if cv2.waitKey(1) & 0xFF == ord('q'): break @@ -55,59 +55,60 @@ cap.release() # Playing Video from file cap = cv2.VideoCapture('movie.mp4') -while(cap.isOpened()): +while cap.isOpened(): _, frame = cap.read() # Play the video in grayscale gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) - cv2.imshow('frame',gray) + cv2.imshow('frame', gray) if cv2.waitKey(1) & 0xFF == ord('q'): break cap.release() # Drawing The Line in OpenCV -# cv2.line(img,(x,y),(x1,y1),(color->r,g,b->0 to 255),thickness) -cv2.line(img,(0,0),(511,511),(255,0,0),5) +# cv2.line(img, (x,y), (x1,y1), (color->r,g,b->0 to 255), thickness) +cv2.line(img, (0, 0), (511, 511), (255, 0, 0), 5) # Drawing Rectangle -# cv2.rectangle(img,(x,y),(x1,y1),(color->r,g,b->0 to 255),thickness) +# cv2.rectangle(img, (x,y), (x1,y1), (color->r,g,b->0 to 255), thickness) # thickness = -1 used for filling the rectangle -cv2.rectangle(img,(384,0),(510,128),(0,255,0),3) +cv2.rectangle(img, (384, 0), (510, 128), (0, 255, 0), 3) # Drawing Circle -cv2.circle(img,(xCenter,yCenter), radius, (color->r,g,b->0 to 255), thickness) -cv2.circle(img,(200,90), 100, (0,0,255), -1) +# cv2.circle(img, (xCenter,yCenter), radius, (color->r,g,b->0 to 255), thickness) +cv2.circle(img, (200, 90), 100, (0, 0, 255), -1) # Drawing Ellipse -cv2.ellipse(img,(256,256),(100,50),0,0,180,255,-1) +cv2.ellipse(img, (256, 256), (100, 50), 0, 0, 180, 255, -1) # Adding Text On Images -cv2.putText(img,"Hello World!!!", (x,y), cv2.FONT_HERSHEY_SIMPLEX, 2, 255) +cv2.putText(img, "Hello World!!!", (x, y), cv2.FONT_HERSHEY_SIMPLEX, 2, 255) # Blending Images img1 = cv2.imread('cat.png') img2 = cv2.imread('openCV.jpg') -dst = cv2.addWeighted(img1,0.5,img2,0.5,0) +dst = cv2.addWeighted(img1, 0.5, img2, 0.5, 0) # Thresholding image # Binary Thresholding -_,thresImg = cv2.threshold(img,127,255,cv2.THRESH_BINARY) +_, thresImg = cv2.threshold(img, 127, 255, cv2.THRESH_BINARY) # Adaptive Thresholding -adapThres = cv2.adaptiveThreshold(img,255,cv2.ADAPTIVE_THRESH_GAUSSIAN_C, cv2.THRESH_BINARY,11,2) +adapThres = cv2.adaptiveThreshold(img, 255, cv2.ADAPTIVE_THRESH_GAUSSIAN_C, cv2.THRESH_BINARY, 11, 2) # Blur Image # Gaussian Blur -blur = cv2.GaussianBlur(img,(5,5),0) +blur = cv2.GaussianBlur(img, (5, 5), 0) # Median Blur -medianBlur = cv2.medianBlur(img,5) +medianBlur = cv2.medianBlur(img, 5) # Canny Edge Detection -img = cv2.imread('cat.jpg',0) -edges = cv2.Canny(img,100,200) +img = cv2.imread('cat.jpg', 0) +edges = cv2.Canny(img, 100, 200) # Face Detection using Haar Cascades # Download Haar Cascades from https://github.com/opencv/opencv/blob/master/data/haarcascades/ import cv2 import numpy as np + face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml') eye_cascade = cv2.CascadeClassifier('haarcascade_eye.xml') @@ -115,21 +116,21 @@ img = cv2.imread('human.jpg') gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) faces = face_cascade.detectMultiScale(gray, 1.3, 5) -for (x,y,w,h) in faces: +for x, y, w, h in faces: # Draw a rectangle around detected face - cv2.rectangle(img,(x,y),(x+w,y+h),(255,0,0),2) - roi_gray = gray[y:y+h, x:x+w] - roi_color = img[y:y+h, x:x+w] + cv2.rectangle(img, (x, y), (x + w, y + h), (255, 0, 0), 2) + roi_gray = gray[y : y + h, x : x + w] + roi_color = img[y : y + h, x : x + w] eyes = eye_cascade.detectMultiScale(roi_gray) - for (ex,ey,ew,eh) in eyes: + for ex, ey, ew, eh in eyes: # Draw a rectangle around detected eyes - cv2.rectangle(roi_color,(ex,ey),(ex+ew,ey+eh),(0,255,0),2) + cv2.rectangle(roi_color, (ex, ey), (ex + ew, ey + eh), (0, 255, 0), 2) -cv2.imshow('img',img) +cv2.imshow('img', img) cv2.waitKey(0) cv2.destroyAllWindows() -# destroyAllWindows() destroys all windows. +# destroyAllWindows() destroys all windows. # If you wish to destroy specific window pass the exact name of window you created. ``` @@ -139,7 +140,7 @@ cv2.destroyAllWindows() * OpenCV drawing Functions [https://docs.opencv.org/2.4/modules/core/doc/drawing_functions.html](https://docs.opencv.org/2.4/modules/core/doc/drawing_functions.html) * An up-to-date language reference can be found at [https://opencv.org](https://opencv.org) * Additional resources may be found at [https://en.wikipedia.org/wiki/OpenCV](https://en.wikipedia.org/wiki/OpenCV) -* Good OpenCv Tutorials +* Good OpenCV Tutorials * [https://realpython.com/python-opencv-color-spaces](https://realpython.com/python-opencv-color-spaces) * [https://pyimagesearch.com](https://pyimagesearch.com) * [https://www.learnopencv.com](https://www.learnopencv.com) diff --git a/zh-cn/opencv-cn.html.markdown b/zh-cn/opencv-cn.html.markdown index 2932e586..596430f6 100644 --- a/zh-cn/opencv-cn.html.markdown +++ b/zh-cn/opencv-cn.html.markdown @@ -8,18 +8,18 @@ translators: - ["GengchenXU", "https://github.com/GengchenXU"] lang: zh-cn --- -### Opencv -Opencv(开源计算机视觉)是一个编程功能库,主要面向实时计算机视觉。最初由英特尔开发,后来由Willow Garage,然后Itseez(后来被英特尔收购)支持。Opencv 目前支持多种语言,如C++、Python、Java 等 +OpenCV(开源计算机视觉)是一个编程功能库,主要面向实时计算机视觉。最初由英特尔开发,后来由Willow Garage,然后Itseez(后来被英特尔收购)支持。OpenCV 目前支持多种语言,如C++、Python、Java 等 #### 安装 + 有关在计算机上安装 OpenCV,请参阅这些文章。 -* Windows 安装说明: [https://opencv-python-tutroals.readthedocs.io/en/latest/py_tutorials/py_setup/py_setup_in_windows/py_setup_in_windows.html#install-opencv-python-in-windows]() -* Mac 安装说明 (High Sierra): [https://medium.com/@nuwanprabhath/installing-opencv-in-macos-high-sierra-for-python-3-89c79f0a246a]() -* Linux 安装说明 (Ubuntu 18.04): [https://www.pyimagesearch.com/2018/05/28/ubuntu-18-04-how-to-install-opencv]() +* [Windows 安装说明](https://opencv-python-tutroals.readthedocs.io/en/latest/py_tutorials/py_setup/py_setup_in_windows/py_setup_in_windows.html#install-opencv-python-in-windows) +* [Mac 安装说明](https://medium.com/@nuwanprabhath/installing-opencv-in-macos-high-sierra-for-python-3-89c79f0a246a) (High Sierra) +* [Linux 安装说明](https://www.pyimagesearch.com/2018/05/28/ubuntu-18-04-how-to-install-opencv) (Ubuntu 18.04) -### 在这里,我们将专注于 OpenCV 的 python 实现 +### 在这里,我们将专注于 OpenCV 的 Python 实现 ```python # OpenCV读取图片 @@ -28,14 +28,14 @@ img = cv2.imread('cat.jpg') # 显示图片 # imshow() 函数被用来显示图片 -cv2.imshow('Image',img) +cv2.imshow('Image', img) # 第一个参数是窗口的标题,第二个参数是image # 如果你得到错误,对象类型为None,你的图像路径可能是错误的。请重新检查图像包 cv2.waitKey(0) # waitKey() 是一个键盘绑定函数,参数以毫秒为单位。对于GUI事件,必须使用waitKey()函数。 # 保存图片 -cv2.imwrite('catgray.png',img) +cv2.imwrite('catgray.png', img) # 第一个参数是文件名,第二个参数是图像 # 转换图像灰度 @@ -43,11 +43,11 @@ gray_image = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) # 从摄像头捕捉视频 cap = cv2.VideoCapture(0) -#0 是你的相机,如果你有多台相机,你需要输入他们的id -while(True): +# 0 是你的相机,如果你有多台相机,你需要输入他们的id +while True: # 一帧一帧地获取 _, frame = cap.read() - cv2.imshow('Frame',frame) + cv2.imshow('Frame', frame) # 当用户按下q ->退出 if cv2.waitKey(1) & 0xFF == ord('q'): break @@ -56,54 +56,54 @@ cap.release() # 在文件中播放视频 cap = cv2.VideoCapture('movie.mp4') -while(cap.isOpened()): +while cap.isOpened(): _, frame = cap.read() # 灰度播放视频 gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) - cv2.imshow('frame',gray) + cv2.imshow('frame', gray) if cv2.waitKey(1) & 0xFF == ord('q'): break cap.release() # 在OpenCV中画线 -# cv2.line(img,(x,y),(x1,y1),(color->r,g,b->0 to 255),thickness)(注 color颜色rgb参数 thickness粗细) -cv2.line(img,(0,0),(511,511),(255,0,0),5) +# cv2.line(img, (x,y), (x1,y1), (color->r,g,b->0 to 255), thickness)(注 color颜色rgb参数 thickness粗细) +cv2.line(img, (0, 0), (511, 511), (255, 0, 0), 5) # 画矩形 -# cv2.rectangle(img,(x,y),(x1,y1),(color->r,g,b->0 to 255),thickness) +# cv2.rectangle(img, (x,y), (x1,y1), (color->r,g,b->0 to 255), thickness) # 粗细= -1用于填充矩形 -cv2.rectangle(img,(384,0),(510,128),(0,255,0),3) +cv2.rectangle(img, (384, 0), (510, 128), (0, 255, 0), 3) # 画圆 -cv2.circle(img,(xCenter,yCenter), radius, (color->r,g,b->0 to 255), thickness) -cv2.circle(img,(200,90), 100, (0,0,255), -1) +# cv2.circle(img, (xCenter,yCenter), radius, (color->r,g,b->0 to 255), thickness) +cv2.circle(img, (200, 90), 100, (0, 0, 255), -1) # 画椭圆 -cv2.ellipse(img,(256,256),(100,50),0,0,180,255,-1) +cv2.ellipse(img, (256, 256), (100, 50), 0, 0, 180, 255, -1) # 在图像上增加文字 -cv2.putText(img,"Hello World!!!", (x,y), cv2.FONT_HERSHEY_SIMPLEX, 2, 255) +cv2.putText(img, "Hello World!!!", (x, y), cv2.FONT_HERSHEY_SIMPLEX, 2, 255) # 合成图像 img1 = cv2.imread('cat.png') img2 = cv2.imread('openCV.jpg') -dst = cv2.addWeighted(img1,0.5,img2,0.5,0) +dst = cv2.addWeighted(img1, 0.5, img2, 0.5, 0) # 阈值图像 # 二进制阈值 -_,thresImg = cv2.threshold(img,127,255,cv2.THRESH_BINARY) +_, thresImg = cv2.threshold(img, 127, 255, cv2.THRESH_BINARY) # Adaptive Thresholding -adapThres = cv2.adaptiveThreshold(img,255,cv2.ADAPTIVE_THRESH_GAUSSIAN_C, cv2.THRESH_BINARY,11,2) +adapThres = cv2.adaptiveThreshold(img, 255, cv2.ADAPTIVE_THRESH_GAUSSIAN_C, cv2.THRESH_BINARY, 11, 2) # 模糊的形象 # 高斯模糊 -blur = cv2.GaussianBlur(img,(5,5),0) +blur = cv2.GaussianBlur(img, (5, 5), 0) # 模糊中值 -medianBlur = cv2.medianBlur(img,5) +medianBlur = cv2.medianBlur(img, 5) # Canny 边缘检测 -img = cv2.imread('cat.jpg',0) -edges = cv2.Canny(img,100,200) +img = cv2.imread('cat.jpg', 0) +edges = cv2.Canny(img, 100, 200) # 用Haar Cascades进行人脸检测 # 下载 Haar Cascades 在 https://github.com/opencv/opencv/blob/master/data/haarcascades/ @@ -116,30 +116,30 @@ img = cv2.imread('human.jpg') gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) aces = face_cascade.detectMultiScale(gray, 1.3, 5) -for (x,y,w,h) in faces: - cv2.rectangle(img,(x,y),(x+w,y+h),(255,0,0),2) - roi_gray = gray[y:y+h, x:x+w] - roi_color = img[y:y+h, x:x+w] +for x, y, w, h in faces: + cv2.rectangle(img, (x, y), (x + w, y + h), (255, 0, 0), 2) + roi_gray = gray[y : y + h, x : x + w] + roi_color = img[y : y + h, x : x + w] eyes = eye_cascade.detectMultiScale(roi_gray) - for (ex,ey,ew,eh) in eyes: - cv2.rectangle(roi_color,(ex,ey),(ex+ew,ey+eh),(0,255,0),2) + for ex, ey, ew, eh in eyes: + cv2.rectangle(roi_color, (ex, ey), (ex + ew, ey + eh), (0, 255, 0), 2) -cv2.imshow('img',img) +cv2.imshow('img', img) cv2.waitKey(0) cv2.destroyAllWindows() -# destroyAllWindows() destroys all windows. +# destroyAllWindows() destroys all windows. # 如果您希望销毁特定窗口,请传递您创建的窗口的确切名称。 ``` ### 进一步阅读: -* Download Cascade from [https://github.com/opencv/opencv/blob/master/data/haarcascades]() -* OpenCV 绘图函数 [https://docs.opencv.org/2.4/modules/core/doc/drawing_functions.html]() -* 最新的语言参考 [https://opencv.org]() -* 更多的资源 [https://en.wikipedia.org/wiki/OpenCV]() +* Download Cascade from [https://github.com/opencv/opencv/blob/master/data/haarcascades](https://github.com/opencv/opencv/blob/master/data/haarcascades) +* OpenCV 绘图函数 [https://docs.opencv.org/2.4/modules/core/doc/drawing_functions.html](https://docs.opencv.org/2.4/modules/core/doc/drawing_functions.html) +* 最新的语言参考 [https://opencv.org](https://opencv.org) +* 更多的资源 [https://en.wikipedia.org/wiki/OpenCV](https://en.wikipedia.org/wiki/OpenCV) * 优秀的的 OpenCV 教程 - * [https://opencv-python-tutroals.readthedocs.io/en/latest/py_tutorials/py_tutorials.html]() - * [https://realpython.com/python-opencv-color-spaces]() - * [https://pyimagesearch.com]() - * [https://www.learnopencv.com]() + * [https://opencv-python-tutroals.readthedocs.io/en/latest/py_tutorials/py_tutorials.html](https://opencv-python-tutroals.readthedocs.io/en/latest/py_tutorials/py_tutorials.html) + * [https://realpython.com/python-opencv-color-spaces](https://realpython.com/python-opencv-color-spaces) + * [https://pyimagesearch.com](https://pyimagesearch.com) + * [https://www.learnopencv.com](https://www.learnopencv.com) |