新年福利來一波之Python輕松集齊五福(demo)
新的一年又要到來了,各個(gè)大的公司又在這年末為大家送上了新春的祝福,支付寶還是延續(xù)了這幾年的傳統(tǒng),在年末為大家送上了集五福的活動(dòng),為了大家能更快更好的掃出來大大的“?!保裉炀蛶ьI(lǐng)大家利用python做一個(gè)一“?!鞭D(zhuǎn)“N”福的小demo。
先看效果圖

首先,我們需要拿到一張大大的“福”字圖片,然后,我們就可以對于這張圖進(jìn)行操作了。我們今天要實(shí)現(xiàn)的就是將一張“?!弊洲D(zhuǎn)化為五種不同的風(fēng)格,現(xiàn)為大家呈上效果圖。
灰度圖
首先為大家展示的是灰度圖,灰度圖就是將彩色的RGB三通道圖像,轉(zhuǎn)化為單通道的灰色圖像,RGB三個(gè)通道的顏色通過比例系數(shù)進(jìn)行相加。程序如下所示。
def Gray_fu(self): gray_img = cv2.cvtColor(self.ori_img, cv2.COLOR_BGR2GRAY) return gray_img
輪廓圖
接下來是輪廓圖,輪廓圖需要輸入一張灰度圖像,首先是對圖像進(jìn)行濾波處理,去除噪聲,然后針對于灰色的圖片中像素突然變化的點(diǎn)來檢測邊緣,什么是邊緣突然變化呢,參考我們的灰度圖,灰度圖中,“?!弊值倪吘壨尘邦伾霈F(xiàn)了巨大的差異,這種差異就是尋找邊緣輪廓的依據(jù),程序如下圖所示。
def Canny_fn(self): img = cv2.cvtColor(self.ori_img, cv2.COLOR_BGR2GRAY) img = cv2.GaussianBlur(img, (3, 3), 0) canny_img = cv2.Canny(img, 50, 150) return canny_img
反色圖
對于反色圖,理解起來并不難,就是用255減去將原圖中的每一個(gè)像素值,得到的就是我們的反色圖,程序如下:
def invert_fu(self): img = 255 - self.ori_img return img
腐蝕圖
對于腐蝕圖,因?yàn)樵谖覀冞x取的圖像中,紅色是背景,黑色才是福字,所以對紅色進(jìn)行膨脹也就是對黑色進(jìn)行腐蝕。這也是 OpenCV 的內(nèi)置功能。我們只需要調(diào)用opencv中的膨脹函數(shù)即可。
def dilate_fu(self): # img = cv2.cvtColor(self.ori_img, cv2.COLOR_BGR2GRAY) kernel = cv2.getStructuringElement(cv2.MORPH_RECT, (5, 5)) img = cv2.dilate(self.ori_img, kernel, iterations=1) print(img.shape) return img
福到家
最后是我們的“福到家”,我們只需要將福字進(jìn)行旋轉(zhuǎn)即可。
def rotate_fu(self): img = cv2.rotate(self.ori_img, 1) return img
完整代碼
import cv2 class Change_pic(): def __init__(self, img): self.ori_img = cv2.imread(img) def Gray_fu(self): '''灰度圖''' gray_img = cv2.cvtColor(self.ori_img, cv2.COLOR_BGR2GRAY) return gray_img def Canny_fn(self): '''輪廓圖''' img = cv2.cvtColor(self.ori_img, cv2.COLOR_BGR2GRAY) img = cv2.GaussianBlur(img, (3, 3), 0) canny_img = cv2.Canny(img, 50, 150) return canny_img def invert_fu(self): '''反色圖''' img = 255 - self.ori_img return img def dilate_fu(self): '''腐蝕圖''' # img = cv2.cvtColor(self.ori_img, cv2.COLOR_BGR2GRAY) kernel = cv2.getStructuringElement(cv2.MORPH_RECT, (5, 5)) img = cv2.dilate(self.ori_img, kernel, iterations=1) print(img.shape) return img def rotate_fu(self): '''福到家''' img = cv2.rotate(self.ori_img, 1) return img
總結(jié)
以上所述是小編給大家介紹的新年福利來一波之Python輕松集齊五福,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時(shí)回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉(zhuǎn)載,煩請注明出處,謝謝!
相關(guān)文章
公眾號接入chatGPT的詳細(xì)教程 附Python源碼
這篇文章主要介紹了公眾號接入chatGPT教程附Python源碼,這里需要大家準(zhǔn)備一個(gè)域名,一臺服務(wù)器和一個(gè)公眾號,本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2023-02-02
Python實(shí)現(xiàn)合并兩個(gè)字典的8種方法
Python有多種方法可以通過使用各種函數(shù)和構(gòu)造函數(shù)來合并字典,本文主要介紹了Python實(shí)現(xiàn)合并兩個(gè)字典的8種方法,具有一定的參考價(jià)值,感興趣的可以了解一下2024-07-07
如何將tensorflow訓(xùn)練好的模型移植到Android (MNIST手寫數(shù)字識別)
這篇文章主要介紹了將tensorflow訓(xùn)練好的模型移植到Android (MNIST手寫數(shù)字識別),本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-04-04
PyQt5中QSpinBox計(jì)數(shù)器的實(shí)現(xiàn)
這篇文章主要介紹了PyQt5中QSpinBox計(jì)數(shù)器的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01
python Pexpect 實(shí)現(xiàn)輸密碼 scp 拷貝的方法
今天小編就為大家分享一篇python Pexpect 實(shí)現(xiàn)輸密碼 scp 拷貝的方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-01-01

