首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >图像熵值误差:图像维数和邻域维数不匹配

图像熵值误差:图像维数和邻域维数不匹配
EN

Stack Overflow用户
提问于 2021-04-16 00:27:49
回答 1查看 1.4K关注 0票数 1

我正在做一个项目,我刚刚开始使用Python编程。我在用Pycharm。我想从视频中提取帧,得到每个帧中的熵,然后保存它们。

我遵循了本教程:https://scikit-image.org/docs/dev/api/skimage.filters.rank.html#skimage.filters.rank.entropy

到目前为止,这是我的代码:

代码语言:javascript
运行
复制
import cv2
from skimage.filters.rank import entropy
from skimage.morphology import disk

filename = 'C:/Users/myname/Downloads/testvideo.mp4'
video = cv2.VideoCapture(filename)

if not video.isOpened():
    print("Error opening video file")

i = 0
while video.isOpened():
    ret, frame = video.read()
    if not ret:
        break
    img = entropy(frame, disk(5))
    cv2.imwrite('frame' + str(i) + '.jpg', img)
    i = i + 1

video.release()
cv2.destroyAllWindows()

打开视频并保存帧非常好,直到我尝试将熵应用到它,帧。

我尝试过这样的方法:

img = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)

它工作得非常好,并将一个帧转换为灰度,并保存了它们,但似乎存在熵问题,或者更确切地说,是磁盘(5)。

显示的错误是:

ValueError:图像维数和邻域维数不匹配

当我试图从教程网站运行代码时,我也会遇到同样的错误。有人能帮我吗,拜托?非常感谢!

EN

Stack Overflow用户

发布于 2022-05-19 14:33:09

从skimage中的源代码中删除

代码语言:javascript
运行
复制
footprint = np.ascontiguousarray(img_as_ubyte(footprint > 0))
if footprint.ndim != image.ndim:
    raise ValueError('Image dimensions and neighborhood dimensions'
                     'do not match')

出现了例外情况。足迹=磁盘(N)。n=5在你的案子里。

因此,您可以检查目标图像(img.ndim)的数字,并将其与2(磁盘(5)的数字)进行比较。如果不相等,可以使用img = np.squeeze(img)来更改图像的ndim。

票数 3
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67117592

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档