前言 本文的文字及圖片來源於網路,僅供學習、交流使用,不具有任何商業用途,版權歸原作者所有,如有問題請及時聯繫我們以作處理。 生活中我們會拍很多的證件照,有的要求紅底,有的是白底,有的是藍底,今天不通過摳圖,實現一鍵換底片!想換什麼換什麼 知識點: 1.圖像處理 2.OpenCV 3.numpy 4 ...
前言
本文的文字及圖片來源於網路,僅供學習、交流使用,不具有任何商業用途,版權歸原作者所有,如有問題請及時聯繫我們以作處理。
生活中我們會拍很多的證件照,有的要求紅底,有的是白底,有的是藍底,今天不通過摳圖,實現一鍵換底片!想換什麼換什麼
知識點:
1.圖像處理
2.OpenCV
3.numpy
4.python基礎知識
環境:
windows
pycharm
python3
步驟
倒入庫
import numpy as np import cv2
如果直接在命令提示符中安裝的話要換個名稱
pip install OpenCV-python
圖像導入
img = cv2.imread('timg.jpg')
縮放
rows,cols,channels = img.shape print(rows,cols,channels) img = cv2.resize(img,None,fx=0.5,fy=0.5) rows,cols,channels = img.shape print(rows,cols,channels)
顯示圖像內容,併進行處理
轉換圖像為二值化圖
cv2.imshow('img',img) hsv = cv2.cvtColor(img,cv2.COLOR_BGR2HSV) cv2.imshow('hsv',hsv) lower_blue = np.array([90,70,90]) upper_blue = np.array([110,255,255])
二值化功能
mask = cv2.inRange(hsv,lower_blue,upper_blue) cv2.imshow('Mask',mask)
腐蝕
erosion = cv2.erode(mask,None,iterations=1) cv2.imshow('erosion',erosion)
膨脹
dilation = cv2.dilate(mask ,None,iterations=1) cv2.imshow('dilation',dilation)
for i in range(rows): for j in range(cols): if dilation[i,j] == 255: img[i,j] = (0,0,255) # rgb(255,0,0) BGR() cv2.imshow('res',img)
保存
cv2.imwrite('ting.png',img) cv2.waitKey(0) # 0 無限等待 cv2.destroyAllWindows() # 銷毀所有的視窗