現在有一推AI網站提供模糊圖片變高清的工具,Google關鍵字一下就一推了,例如MyEdit,Artguru等等。
Python的OpenCV有提供一個DnnSuperResImpl Class Reference,也可以做到這件事,就讓我們繼續往下看吧。
在OpenCV DnnSuperResImpl提供的四個模型可載入使用:
其中EDSR是精度最高的,但速度最久檔案最大,我們就利用這個模型來測試一下。
EDSR訓練數據:
EDSR(Enhanced Deep Residual Networks for Single Image Super-Resolution)是一種基於深度學習的超分辨率(super-resolution)方法。它由 Bee Lim 等人在 2017 年提出,目的在提高圖像的解析度和品質。
從111*148大小,已2的倍數不斷放大
使用cv2.resize一樣2倍的放大,做個比較
EDSR縮放的效果明顯看起來比雙三次插值還來的自然一點。
OpenCV 要4.3.0以上
install opencv-contrib-python
opencv-contrib-python-headless 4.10.0.84
opencv-python 4.7.0.72
opencv-python-headless 4.10.0.84
import cv2
from cv2 import dnn_superres
# 初始化DnnSuperResImpl_create
sr = dnn_superres.DnnSuperResImpl_create()
# 讀取圖片
img = cv2.imread('路徑')
# 讀取預訓練的模型,這裡使用 EDSR_x2模型放大2倍
sr.readModel("EDSR_x2.pb")
# 設置模型類型和放大倍率
sr.setModel("edsr", 2)
# 放大圖像
img = sr.upsample(img)
# 保存放大的影像
cv2.imwrite('路徑', img)