[opencv/*] fix empty links and format code

This commit is contained in:
Boris Verkhovskiy 2024-05-19 03:24:27 -06:00
parent 781b19ef41
commit 34c5f5ad9a
3 changed files with 126 additions and 124 deletions

View File

@ -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/)

View File

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

View File

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