gpt4 book ai didi

MATLAB ind2sub 不是 sub2ind 的逆

转载 作者:行者123 更新时间:2023-12-02 06:19:13 27 4
gpt4 key购买 nike

我实现了一个图像处理算法,需要用一条线扫描图像。我将直线的有效点生成为两个向量:lx_validly_valid。然后我使用 sub2ind 生成线性索引,并绘制结果。正如您所看到的,我的线明显与对象相交,但运行代码后 locmax == 0 。坐标都是有效的(图像内部);但我得到了一个更奇怪的结果:如果我将坐标生成为 ind2sub(size(Im), c) ,我什至拿不回我的坐标。我确信它是小东西,但我无法得到它。

valid = lx >= 1 & size(Im, 2) >= lx & ly >= 1 & size(Im, 1) >= ly;
lx_valid = lx(valid);
ly_valid = ly(valid);
c = sub2ind(size(Im), ly_valid, lx_valid);
locmax = max(Im(c));
imshow(Im);plot(lx_valid,ly_valid,'go');

imshow(Im);plot(lx_valid,ly_valid,'go'); works as expected

最佳答案

我解决了这个问题:由 sub2ind 生成的索引已饱和,并以 uint16 形式默默返回。如果我将参数转换为 double ,sub2ind 将返回一个对于索引来说足够大的 double 值。

valid = lx >= 1 & size(Im, 2) >= lx & ly >= 1 & size(Im, 1) >= ly; 
lx_valid = double(lx(valid));
ly_valid = double(ly(valid));
c = sub2ind(size(Im), ly_valid, lx_valid);
locmax = max(Im(c));
imshow(Im);plot(lx_valid,ly_valid,'go');

关于MATLAB ind2sub 不是 sub2ind 的逆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12749907/

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