opencv轉(zhuǎn)換顏色空間更改圖片背景
本文實(shí)例為大家分享了opencv轉(zhuǎn)換顏色空間更改圖片背景的具體代碼,供大家參考,具體內(nèi)容如下
思路:
1、將BGR轉(zhuǎn)換為HSV顏色空間
2、設(shè)置掩模
3、位運(yùn)算
這里以更改摩托羅拉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) # 藍(lán)色分量掩模,使用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') # 前景色只留下藍(lán)色字體部分 fg = cv2.bitwise_and(img,img,mask = maskblue) show(fg,'fg') # 背景中除去藍(lán)色字體部分 bg = cv2.bitwise_and(bgd,bgd,mask = maskblue_inv) show(bg,'bg') # 前景色和背景色相加 dst = cv2.add(bg,fg) show(dst,'dst')
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
解決python 3 urllib 沒(méi)有 urlencode 屬性的問(wèn)題
今天小編就為大家分享一篇解決python 3 urllib 沒(méi)有 urlencode 屬性的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-08-08
Pycharm直接使用遠(yuǎn)程服務(wù)器代碼并調(diào)試的解決方法
這篇文章主要介紹了Pycharm直接使用遠(yuǎn)程服務(wù)器代碼并調(diào)試的解決方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-02-02
python使用os.listdir和os.walk獲得文件的路徑的方法
本篇文章主要介紹了python使用os.listdir和os.walk獲得文件的路徑的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-12-12
利用Python實(shí)現(xiàn)問(wèn)卷星自動(dòng)填寫(xiě)的超詳細(xì)教程
問(wèn)卷星已經(jīng)成為收集問(wèn)卷的一個(gè)很重要的工具,有時(shí)可以用來(lái)報(bào)名參加活動(dòng),有時(shí)可以用來(lái)收集某些領(lǐng)域相關(guān)的情況,下面這篇文章主要給大家介紹了關(guān)于利用Python實(shí)現(xiàn)問(wèn)卷星自動(dòng)填寫(xiě)的超詳細(xì)教程,需要的朋友可以參考下2023-06-06
利用Python如何批量修改數(shù)據(jù)庫(kù)執(zhí)行Sql文件
這篇文章主要給大家介紹了關(guān)于利用Python如何批量修改數(shù)據(jù)庫(kù)執(zhí)行Sql文件的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2018-07-07
Python3實(shí)現(xiàn)爬取簡(jiǎn)書(shū)首頁(yè)文章標(biāo)題和文章鏈接的方法【測(cè)試可用】
這篇文章主要介紹了Python3實(shí)現(xiàn)爬取簡(jiǎn)書(shū)首頁(yè)文章標(biāo)題和文章鏈接的方法,結(jié)合實(shí)例形式分析了Python3基于urllib及bs4庫(kù)針對(duì)簡(jiǎn)書(shū)網(wǎng)進(jìn)行文章抓取相關(guān)操作技巧,需要的朋友可以參考下2018-12-12
Python frozenset集合的實(shí)現(xiàn)
frozenset是Python中的不可變集合類型,本文主要介紹了Python frozenset集合的實(shí)現(xiàn), 文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2025-04-04

