我用 Python 集齊了五福
新的一年又要到來了,各個(gè)大的公司又在這年末為大家送上了新春的祝福,支付寶還是延續(xù)了這幾年的傳統(tǒng),在年末為大家送上了集五福的活動(dòng),為了大家能更快更好的掃出來大大的“福”,今天小編就帶領(lǐng)大家利用python做一個(gè)一“福”轉(zhuǎn)“N”福的小demo。
1、先看效果圖
首先,我們需要拿到一張大大的“福”字圖片,然后,我們就可以對于這張圖進(jìn)行操作了。我們今天要實(shí)現(xiàn)的就是將一張“福”字轉(zhuǎn)化為五種不同的風(fēng)格,現(xiàn)為大家呈上效果圖。
首先為大家展示的是灰度圖,灰度圖就是將彩色的RGB三通道圖像,轉(zhuǎn)化為單通道的灰色圖像,RGB三個(gè)通道的顏色通過比例系數(shù)進(jìn)行相加。程序如下所示。
2、輪廓圖
接下來是輪廓圖,輪廓圖需要輸入一張灰度圖像,首先是對圖像進(jìn)行濾波處理,去除噪聲,然后針對于灰色的圖片中像素突然變化的點(diǎn)來檢測邊緣,什么是邊緣突然變化呢,參考我們的灰度圖,灰度圖中,“福”字的邊緣同背景顏色出現(xiàn)了巨大的差異,這種差異就是尋找邊緣輪廓的依據(jù),程序如下圖所示。
對于反色圖,理解起來并不難,就是用255減去將原圖中的每一個(gè)像素值,得到的就是我們的反色圖,程序如下:
對于腐蝕圖,因?yàn)樵谖覀冞x取的圖像中,紅色是背景,黑色才是福字,所以對紅色進(jìn)行膨脹也就是對黑色進(jìn)行腐蝕。這也是 OpenCV 的內(nèi)置功能。我們只需要調(diào)用opencv中的膨脹函數(shù)即可。
最后是我們的“福到家”,我們只需要將福字進(jìn)行旋轉(zhuǎn)即可。
3、用TK做一個(gè)交互界面
為了更好的將上述的程序做到一個(gè)交互,小編特地為大家做了一個(gè)交互的界面,大家可以直接利用交互界面,來選擇想要展示的“福”字效果,并將處理好的結(jié)果顯示在交互界面上。同時(shí),程序會(huì)自動(dòng)將處理好的圖片保存到本地路徑下。
以上就是小編為大家?guī)淼?ldquo;一福轉(zhuǎn)五福”的小demo,希望大家在新的一年里都能福到財(cái)?shù)竭\(yùn)氣到,小編在這里提前給大家拜年啦。