LoginSignup
0
2

More than 5 years have passed since last update.

cv2を試してみた。

Posted at

import cv2
import matplotlib.pyplot as plt
img = cv2.imread("nanamin1", 1)
# 画像の読み込み

img_r = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
# cv2だと色の構成要素がBGRの順番だがpltはRGBの順番なので、pltで表示させるためにはcv2.COLOR_BGR2RGBを使う。

HAAR_FILE="/anaconda3/lib/python3.7/site-packages/cv2/data/haarcascade_frontalface_default.xml"
# 画像データを読み込む。このデータはopen_cvをダウンロードすると付いてくる。

cascade=cv2.CascadeClassifier(HAAR_FILE)
# 大量の画像を学習させることによって、分類器を作る。これによって、顔を検知することが可能となる。

face=cascade.detectMultiScale(img_r)

for x,y,w,h in face:
    cv2.rectangle(img_r,(x, y),(x+w,y+h),(255,255,255),3)
# 顔を囲む長方形を描画する。引数は、(画像、左下座標、右上座標、色、太さ)の順番

plt.imshow(img_r)

nanamin5.png

うまくできた。

どういうわけだか、open_cvのデフォルトである、cv2.imshow関数を使っても,画像を表示することができなかった。
調べたところ、この問題はかなり多くの人が指摘しており、wait_keyを使うことによって解決した人などもいるようだが、私は解決できなかったので、matplotlibを使った。

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2