opencv轉(zhuǎn)換顏色空間更改圖片背景
本文實例為大家分享了opencv轉(zhuǎn)換顏色空間更改圖片背景的具體代碼,供大家參考,具體內(nèi)容如下
思路:
1、將BGR轉(zhuǎn)換為HSV顏色空間
2、設(shè)置掩模
3、位運算
這里以更改摩托羅拉logo背景為例,圖片在必應(yīng)圖片搜索得知,具體代碼如下:
import numpy as np import cv2 from imageio import imread import matplotlib.pyplot as plt def show(img,winname = "img"): cv2.namedWindow(winname,cv2.WINDOW_GUI_NORMAL) cv2.imshow(winname,img) cv2.waitKey(0) cv2.destroyAllWindows() imgpath = r'motorola.jpg' img = imread(imgpath) img = cv2.cvtColor(img,cv2.COLOR_BGR2RGB) if img.shape == 4: img = img[:,:,:3] show(img) print(img.shape) bgd = np.ones(img.shape,dtype=np.uint8) bgd[:,:,:] = 255 #轉(zhuǎn)換為白色背景 show(bgd,"white") # 轉(zhuǎn)換顏色空間 hsv = cv2.cvtColor(img,cv2.COLOR_BGR2HSV) # show(hsv) # 綠色分量掩模,使用inRange函數(shù) # lowergreen = np.array([35,43,46],dtype = np.uint8) # uppergreen = np.array([77,255,255],dtype=np.uint8) # maskgreen = cv2.inRange(hsv,lowergreen,uppergreen) # show(maskgreen) # 藍色分量掩模,使用inRange函數(shù) lowerblue = np.array([100,43,46],dtype = np.uint8) upperblue = np.array([124,255,255],dtype=np.uint8) maskblue = cv2.inRange(hsv, lowerblue, upperblue) maskblue_inv = cv2.bitwise_not(maskblue) show(maskblue,'maskblue') show(maskblue_inv,'maskblue_inv') # 腐蝕操作 kernel_erode = np.ones((3,3),dtype = np.uint8) erode = cv2.erode(maskblue,kernel_erode) # 膨脹操作 kernel_dilate = np.ones((5,5),np.uint8) dilate = cv2.dilate(erode, kernel = kernel_dilate) show(erode,'erode') # 前景色只留下藍色字體部分 fg = cv2.bitwise_and(img,img,mask = maskblue) show(fg,'fg') # 背景中除去藍色字體部分 bg = cv2.bitwise_and(bgd,bgd,mask = maskblue_inv) show(bg,'bg') # 前景色和背景色相加 dst = cv2.add(bg,fg) show(dst,'dst')
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
踩坑:pytorch中eval模式下結(jié)果遠差于train模式介紹
這篇文章主要介紹了踩坑:pytorch中eval模式下結(jié)果遠差于train模式介紹,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-06-06從零學python系列之從文件讀取和保存數(shù)據(jù)
在Python一般都是運用內(nèi)置函數(shù)open()與文件進行交互,下面說說具體用法2014-05-05使用scipy.optimize的fsolve,root函數(shù)求解非線性方程問題
這篇文章主要介紹了使用scipy.optimize的fsolve,root函數(shù)求解非線性方程問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-12-12Python中使用第三方庫xlutils來追加寫入Excel文件示例
這篇文章主要介紹了Python中使用第三方庫xlutils來追加寫入Excel文件示例,本文直接給出追加寫入示例和追加效果,需要的朋友可以參考下2015-04-04Python實現(xiàn)PDF轉(zhuǎn)換文本詳解
這篇文章主要介紹了詳解用Python把PDF轉(zhuǎn)換為文本方法總結(jié),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2021-10-10