import cv2
# 画像を読み込む
image = cv2.imread('source.jpg')
# 画像のサイズを取得する
height, width = image.shape[:2]
# 横幅が800ピクセルになるようにアスペクト比を保ったままリサイズする
new_height = int(height * (800 / width))
resized_image = cv2.resize(image, (800, new_height))
# 画像をグレースケール化する
gray_image = cv2.cvtColor(resized_image, cv2.COLOR_BGR2GRAY)
# 画像を保存する
cv2.imwrite('1.png', gray_image)
1
import cv2
# 画像を読み込む
image = cv2.imread('1.png')
# X方向のソーベルフィルタをかける
image = cv2.Sobel(image, cv2.CV_32F, 1, 0, ksize=3)
# 画像を保存する
cv2.imwrite('2.png', image)
2
import cv2
# 画像を読み込む
image = cv2.imread('1.png')
# Y方向のソーベルフィルタをかける
image = cv2.Sobel(image, cv2.CV_32F, 0, 1, ksize=3)
# 画像を保存する
cv2.imwrite('3.png', image)
3
import cv2
# 画像を読み込む
image = cv2.imread('1.png')
# X方向のソーベルフィルタをかける
imageX = cv2.Sobel(image, cv2.CV_32F, 1, 0, ksize=3)
# Y方向のソーベルフィルタをかける
imageY = cv2.Sobel(image, cv2.CV_32F, 0, 1, ksize=3)
# 2つのフィルタの結果を合成する
for i in range(image.shape[0]):
for j in range(image.shape[1]):
image[i][j] = (imageX[i][j]**2 + imageY[i][j]**2)**0.5
# 画像を保存する
cv2.imwrite('4.png', image)
4
import cv2
# 画像を読み込む
image = cv2.imread('1.png')
# Cannyアルゴリズムを適用してエッジ検出を行う
edges = cv2.Canny(image, 60, 100)
# 画像を保存する
cv2.imwrite('5.png', edges)
5