import cv2
import numpy as np
print('~~~~~~~~~~~~~卷積覈示例~~~~~~~~~~~~~~~~~~')
image = cv2.imread('4.1_flower_original.jpg')
cv2.imshow('4.1_flower_original', image)
cv2.waitKey()
cv2.destroyAllWindows()
kernel = np.array([[-1,-1,-1],
[2,2,2],
[-1,-1,-1]])
sample = cv2.filter2D(image, -1, kernel)
cv2.imwrite('4.1_flower_sample.jpg', sample)
cv2.imshow('4.1_flower_sample.jpg', sample)
cv2.waitKey()
cv2.destroyAllWindows()
# # 低通濾波
# kernel = np.array([[.11,.11,.11],
# [.11,.11,.11],
# [.11,.11,.11]])
# rect = cv2.filter2D(image, -1, kernel)
# cv2.imwrite('4.1_flower_rect.jpg', rect)
# # 高斯濾波
# kernel = np.array([[1,4,5,4,1],
# [4,16,26,16,4],
# [7,26,41,26,7],
# [4,16,26,16,4],
# [1,4,7,4,1]])/273.0
# gaussian = cv2.filter2D(image, -1, kernel)
# cv2.imwrite('4.1_flower_gaussian.jpg', gaussian)
# # 銳化
# kernel = np.array([[0,-2,0],[-2,9,-2],[0,-2,0]])
# sharpen = cv2.filter2D(image, -1, kernel)
# cv2.imwrite('4.1_flower_sharpen.jpg', sharpen)
# # 邊緣檢測
# kernel = np.array([[-1,-1,-1],[-1,8,-1],[-1,-1,-1]])
# edges = cv2.filter2D(image, -1, kernel)
# cv2.imwrite('4.1_flower_edges.jpg', edges)
# # 浮雕
# kernel = np.array([[-2,-2,-2,-2,0],
# [-2,-2,-2,0,2],
# [-2,-2,0,2,2],
# [-2,0,2,2,2],
# [0,2,2,2,2]])
# emboss = cv2.filter2D(image,-1,kernel)
# emboss = cv2.cvtColor(emboss, cv2.COLOR_BGR2GRAY)
# cv2.imwrite('4.1_flower_emboss.jpg', emboss)
print('~~~~~~~~~~~~~cv2使用的一些方法~~~~~~~~~~~~~~~~~~')
from matplotlib import pyplot as plt
img=cv2.imread('4.1_flower_original.jpg',cv2.IMREAD_COLOR)
# cv2顯示
cv2.namedWindow('4.1_flower_original.jpg',cv2.WINDOW_AUTOSIZE)
cv2.imshow('4.1_flower_cv2',img)
cv2.waitKey()
cv2.destroyAllWindows()
# plt顯示 opencv的像素是BGR順序,然而matplotlib所遵循的是RGB順序
fig = plt.figure('4.1_flower_plt')
plt.imshow(img)
plt.show()
# #改進方法一
# b,g,r=cv2.split(img)
# img2=cv2.merge([r,g,b])
# plt.imshow(img2)
# # plt.show()
# #改進方法二
# img3=img[:,:,::-1]
# plt.imshow(img3)
# # plt.show()
# #改進方法三
# img4=cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
# plt.imshow(img4)
# # plt.show()
第四章先從圖片開始搞起~