如今網上出現了不少在線換底色的網頁版工具是這麼作的呢?其實用Python就能夠實現。python
Python3
numpy函數庫
opencv庫
下載適應版本的numpy函數庫,我電腦是WIN10 64位,安裝的函數庫是
numpy-1.13.1+mkl-cp36-cp36m-win_amd64.whl函數
下載適應版本的opencv庫,我電腦是WIN10 64位,安裝的庫是
opencv_python-3.3.1-cp36-cp36m-win_amd64.whl工具
安裝以上兩個庫,WIN+R->CMD->CD到當前兩個庫所在的文件夾,輸入如下命令逐步安裝spa
pip install numpy-1.13.1+mkl-cp36-cp36m-win_amd64.whl pip install opencv_python-3.3.1-cp36-cp36m-win_amd64.whl
以上兩個文件下載地址:https://download.csdn.net/dow....net
在當前文件夾新建opencv.py,拷貝如下代碼code
import cv2 import numpy as np img=cv2.imread('timg.jpg') #縮放 rows,cols,channels = img.shape img=cv2.resize(img,None,fx=0.5,fy=0.5) rows,cols,channels = img.shape cv2.imshow('img',img) #轉換hsv hsv=cv2.cvtColor(img,cv2.COLOR_BGR2HSV) lower_blue=np.array([90,70,70]) upper_blue=np.array([110,255,255]) mask = cv2.inRange(hsv, lower_blue, upper_blue) cv2.imshow('Mask', mask) #腐蝕膨脹 erode=cv2.erode(mask,None,iterations=1) cv2.imshow('erode',erode) dilate=cv2.dilate(erode,None,iterations=1) cv2.imshow('dilate',dilate) #遍歷替換 for i in range(rows): for j in range(cols): if dilate[i,j]==255: img[i,j]=(0,0,255)#此處替換顏色,爲BGR通道 cv2.imshow('res',img) cv2.waitKey(0) cv2.destroyAllWindows()
第四行timg.jpg是原圖片路徑
lower_blue=np.array([90,70,70])裏面三個數值能夠控制好處理出來的效果和噪點blog
WIN+R->CMD->CD到opencv.py文件夾,運行圖片