![](/img/trans.png)
[英]cv2.error: OpenCV(4.5.3) C:\Users\runneradmin\AppData\Local\Temp\pip-req-build-ep71p_ws\opencv\modules\imgproc\src\color.cpp:182
[英]Opencv super resolution error: cv2.error: OpenCV(4.7.0) /io/opencv/modules/dnn/src/net_impl.cpp:1188
我想將 Sentinel2 旋渦圖像從 20m 升級到 10m,以將其與 r、g、b 和 nir 波段一起使用。 為此,我正在使用 python 代碼嘗試 opencv 超分辨率模塊:
import cv2
img = cv2.imread("img.jp2")
sr = cv2.dnn_superres.DnnSuperResImpl_create()
sr.readModel("EDSR_x2.pb")
sr.setModel("edsr", 2)
result = sr.upsample(img)
cv2.imwrite("result.jp2", result)
使用 opencv 和 opencv-contrib 4.7.0.68,這個EDSR_x2.pb文件和這個圖像
不幸的是,這一行產生了一個錯誤: result = sr.upsample(img)
錯誤:
cv2.error: OpenCV(4.7.0) /io/opencv/modules/dnn/src/net_impl.cpp:1188: error: (-2:Unspecified error) in function 'void cv::dnn::dnn4_v20221220::Net::Impl::getLayerShapesRecursively(int, cv::dnn::dnn4_v20221220::Net::Impl::LayersShapesMap&)'
> (expected: 'total(os[i]) > 0'), where
> 'total(os[i])' is -874068992
> must be greater than
> '0' is 0
我嘗試將 opencv 和 opencv-contrib 降級到 4.6.0.66 和 4.5.5.64,結果相同。
有誰知道為什么它不起作用或有同樣的問題?
您可以嘗試從一個最小的工作示例開始:
import cv2
img = cv2.imread("img.png")
sr = cv2.dnn_superres.DnnSuperResImpl_create()
sr.readModel("models/EDSR_x2.pb")
sr.setModel("edsr", 2)
result = sr.upsample(img)
cv2.imwrite("out.png", result)
EDSR 文件: https://github.com/Saafke/EDSR_Tensorflow/tree/master/models
OpenCV:opencv-contrib-python-4.7.0.68
輸入:
Output:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.