python 利用opencv進行圖片切割


自學opencv也有十幾天了,一直練習教程上面的例子總感覺不夠,剛好碰到一個老師出的數學建模題涉及圖片處理興趣立馬上來,決定利用所學的解決這個建模題

下面是數學建模題:

最強大腦

      近期,江蘇衛視正在熱播節目“最強大腦”。節目中問題的難度、新異、選手的超強記憶力及敏銳的觀察力讓人嘆服不已。

      曾經有這樣一期節目,選手先觀察近百幅人類歷史上出現過的知名建築圖片(沙畫,每幅大約1平米),然后由考官隨機地從圖片中選取一幅4cmX4cm,2cmX2cm等規格的截圖,再讓選手只觀察截圖判別截圖出自於哪一幅沙畫。節目中選手幾乎是以不可想象的速度做出了正確的選擇。

        看完節目,在選手的超強能力的佩服之余,覺得考官的選擇還不夠好,應該選擇這些圖片中相似性最大的部分,而不能選擇那些有顯著特點的截圖,那么題目的難度更會顯著增加。

        首先的問題是如何選擇出那些相似性比較高的截圖呢?請建立模型討論這個問題,並歲附件中的圖片選擇出40X40像素及20X20像素的相似性最高的截圖(截圖僅限出現在附件圖片中的矩形框內,空白截圖除外)。

        其次,建立模型解決對於給定的截圖(見附件中文件“截圖.bmp”)出自於第幾幅圖片的何處位置的問題。

        看了題目和附件之后,首先想到的是要把圖片的有效區域切出來,這時候就用上opencv了(python代碼見附件split.py)

        首先將圖片的有效區域找到, 再切取就ok啦。因為有效區域在所給的圖片的矩形框內,所以就容易定位了。

        把圖片有效區域切出來之后發現圖片大小並非400X400, 而是435X342,想要切出40X40的圖片就有點尷尬了,索性就想了一下大概的步驟(把圖片切出來,然后用KNN算法進行聚類),然后開始做下一個問題。(切出來的圖片在附件splitPicture文件中)

       尋找截圖屬於那張原圖,只需要將截圖與原圖相應大小區域的像素值進行比較,相同即可。(python代碼見附件find.py)

       不好意思,寫到最后才發現無法添加附件,所以就把附件上傳到文件類(附件名:python利用opencv切圖.zip)中。

                                                          


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM