OpenCV-python一般的な使い方・個人的なまとめ
今日はpython openCVの一般的な使い方をまとめてみました.
含む
1. 原図を表示
2. 階調図を表示
3. GRBチャネル分離
4. 座標の回転
5. サイズの再定義
6. 画像の切り取り
7. 輝度の向上
8. ヒストグラム等化
9. フィルタリング
10. エッジ検出
11. かくてんけんしゅつ
含む
1. 原図を表示
2. 階調図を表示
3. GRBチャネル分離
4. 座標の回転
5. サイズの再定義
6. 画像の切り取り
7. 輝度の向上
8. ヒストグラム等化
9. フィルタリング
10. エッジ検出
11. かくてんけんしゅつ
#coding: utf-8
import cv2
import numpy as np
#
im = cv2.imread("star.jpg")
cv2.imshow("pic.jpg", im)
cv2.waitKey(0)
#
gray = cv2.cvtColor(im, cv2.COLOR_BGR2GRAY)
cv2.imshow("gray.jpg", gray)
cv2.waitKey(0)
#BGR
(B, G, R) = cv2.split(im)
cv2.imshow("Red", R)
cv2.imshow("Green", G)
cv2.imshow("Blue", B)
cv2.waitKey(0)
#
rows, cols, channel = im.shape
M = cv2.getRotationMatrix2D(((cols-1)/2.0, (rows-1)/2.0), 90, 1)
dst = cv2.warpAffine(im, M, (cols, rows))
cv2.imshow("dst", dst)
dst = cv2.flip(im, 1) #
dst = cv2.flip(im, 0) #
dst = cv2.flip(im, -1) #
cv2.waitKey(0)
#resize
res = cv2.resize(im, None, fx=2, fy=0.5, interpolation = cv2.INTER_CUBIC)
cv2.imshow("res", res)
cv2.waitKey(0)
#
im1 = im[200:500, 300:600] #(y0:y1, x0:x1)
cv2.imshow("im1", im1)
cv2.waitKey(0)
#
res1 = np.uint8(np.clip(1.5*im,0,255))
res2 = np.uint8(np.clip(0.7*im,0,255))
tmp1 = np.hstack((im, res1, res2))
cv2.imshow("image", tmp1)
cv2.waitKey(0)
# 、 、
#
gray = cv2.cvtColor(im, cv2.COLOR_BGR2GRAY)
equalize = cv2.equalizeHist(gray)
cv2.imshow('equalize', equalize)
cv2.waitKey(0)
#
blur = cv2.blur(im, (5,5)) #
gauss = cv2.GaussianBlur(im, (5,5), 0) #
median = cv2.medianBlur(im, 5) #
bilateral = cv2.bilateralFilter(im, 9, 5, 5) #
filt = np.hstack([blur, gauss, median, bilateral])
cv2.imshow("filter", filt)
cv2.waitKey(0)
#
gray = cv2.cvtColor(im, cv2.COLOR_BGR2GRAY)
_, binary = cv2.threshold(gray,127,255,cv2.THRESH_BINARY)
contours, hierarchy = cv2.findContours(binary, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
con = cv2.drawContours(im,contours,-1,(0,0,255),3)
cv2.imshow("con", con)
cv2.waitKey(0)
#
gray = cv2.cvtColor(im, cv2.COLOR_BGR2GRAY)
dst = cv2.cornerHarris(gray,5,5,0.04)
dst = cv2.dilate(dst,None)#
im[dst>0.01*dst.max()]=[0,0,255]
cv2.imshow('dst',im)
cv2.waitKey(0)
cv2.destroyAllWindows()