gpt4 book ai didi

python-3.x - 在 python 中转换 imgradient matlab 等价物以适应更复杂的场景

转载 作者:太空宇宙 更新时间:2023-11-03 23:05:08 24 4
gpt4 key购买 nike

我在用 Python 转换 Matlab 等价物时遇到问题。

我对以下代码行有疑问:

 instance_contour = uint8(imgradient(instance_map) > 0);

将此行转换为 python 是问题所在。按照 imgradient matlab equivalent in Python 中建议的方法,我会分别获得幅度和角度,但将它们组合起来并与整数值进行比较以获得新结果是我被卡住的地方。我添加了完整的 Matlab 代码以供引用:

instance_map = imread(fullfile(human_inst_root, [imname '.png']));
instance_contour = uint8(imgradient(instance_map) > 0);
imwrite(instance_contour, fullfile(output_root, [imname '.png']));
imwrite(instance_contour*255, fullfile(vis_output_root, [imname '.png']));

最佳答案

MATLAB 中可以返回多个值的函数只有在您指定多个变量来保存这些值时才会这样做,例如(来自 imgradient 的文档):

[Gmag,Gdir] = imgradient(I)

如果你只指定一个返回变量,例如:

Gsomething = imgradient(I)

只会存储第一个 返回值*,在本例中为量级。这是行中发生的事情

instance_contour = uint8(imgradient(instance_map) > 0);

逻辑比较中只使用一个(隐含的)返回变量,因此您实际上只是将梯度的大小与 0 进行比较。没有必要尝试将其与方向结合起来。

* 您可以使用 ~ 来选择要返回的哪个变量来跳过类似于 Python 中的 _ 的值。 [~,Gdir] = imgradient(I) 将仅返回函数的第二个返回值。

关于python-3.x - 在 python 中转换 imgradient matlab 等价物以适应更复杂的场景,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58172124/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com