gpt4 book ai didi

matlab - "Don' t care"内核中用于二元形态树修剪的元素,MATLAB

转载 作者:行者123 更新时间:2023-12-01 15:27:46 27 4
gpt4 key购买 nike

我正在尝试修剪数字 (0-9) 的骨架化图像,由于原始数字厚度的不规则性,该图像有时会高度分支。

为此,我尝试使用图 4 中所示的内核:http://homepages.inf.ed.ac.uk/rbf/HIPR2/thin.htm ,其中包含“无关”单元格。

因为我不知道如何在内核中编写“不关心”元素的代码,所以我正在创建其他内核来掩盖考虑“不关心”元素时的所有可能性。然而,这大大增加了代码的复杂性,因为它的计算量很大。例如,考虑图 4 中的第一个内核:

kernel1 = [1 1 1; * 1 *; 0 0 0] -->

[1 1 1; 1 1 0; 0 0 0]
[1 1 1; 0 1 1; 0 0 0]
[1 1 1; 1 1 1; 0 0 0]
[1 1 1; 0 1 0; 0 0 0]

其中 * 表示“无关”元素。直接编写“无关”元素的代码会简单得多,并且会大大减少计算时间。

有人对如何处理这个问题有什么建议吗?

维克多

最佳答案

谢谢您的回答!

在您的“结果”结果的帮助下,我能够为任意数量的“无关”元素 n 生成所有可能的矩阵。这帮了大忙!

(如果有人感兴趣:)

n = numel(find(A == -1))
func = @(x,n) repmat( [ ones(1, 2.^(n-x)) zeros(1, 2.^(n-x)) ] , 1, 2.^(x-1))
ind = [1:n]' %'
result = cell2mat ( arrayfun(func,ind,n*ones(1,n)','UniformOutput',false) )'

[row,col] = find(A == -1)

for i = 1:size(result,1)
for b = 1:size(result,2)
output{i}(row(b),col(b)) = result(i,b);
end
output{i} = abs(new{i} + A + isnan(A));
end

再次感谢!

关于matlab - "Don' t care"内核中用于二元形态树修剪的元素,MATLAB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34434307/

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