Skip to content

實作碩士論文中,利用BlendMask實例分割模型美化QR code

Notifications You must be signed in to change notification settings

steven520610/IS-QRcode

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

28 Commits
 
 
 
 
 
 

Repository files navigation

IS-QRcode

實作碩士論文中,利用BlendMask實例分割模型與高斯-約旦消去法,將QR code與背景圖片做融合,產生有視覺意義的QR code。

根據ISO 18004:2015的規範,QR code定義了不同的版本(level)、容錯等級(correction level)。

根據版本、容錯等級、加入的訊息,遵循QR code的編碼方式,產生最原始、不具視覺意義的QR code。(範例中,版本:5、容錯等級:L、訊息:Aesthetic QR)

依據傳入的圖片路徑參數,將要加入到QR code內的背景圖片,使用OTSU方法,轉換成二值化影像。

->

將二值化影像,依據碼元大小,建立一個基於碼元的二值化影像。

->

利用BlendMask,將背景圖片的ROI(Region of Interest)取出來。

把前面的原始QR code、基於碼元的二值化影像、ROI利用高斯-約旦消去法,將三者結合在一起,產生調整過碼元且看的出圖像輪廓,並且能成功掃描的QR code。

將處理過後的QR code與背景圖片做融合,產生第一步美化過後的QR code。

最後根據QR code的容錯機制與解碼器對於影像的解碼方式,在保有解碼的能力下,刪除一部分碼元,完成美化過後的QR code。

使用方法,執行main.py檔案,並且傳入適當的參數。

python3 main.py v l m o img --mask -ms -s

v: QR code所使用的版本(1~40)。

l: QR code所使用的容錯等級(L, M, Q, H)。

m: 要加入QR code的訊息。

img: 使用的背景圖片之路徑。

o: 輸出圖片要存放之資料夾。

mask: 建立QR code時所使用的mask(0~7)。

ms: 碼元的大小,即每個碼元內會存在多少個pixels。 s: 碼元的切分大小。

參考資料

https://yeecy.medium.com/%E5%A6%82%E4%BD%95%E8%A3%BD%E4%BD%9C-qr-code-0-%E5%89%8D%E8%A8%80-e464466dc321

https://www.thonky.com/qr-code-tutorial/

https://research.swtch.com/qart

About

實作碩士論文中,利用BlendMask實例分割模型美化QR code

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages