【发布时间】:2016-10-23 11:08:12
【问题描述】:
我有以下 DP,我将其应用于 Matlab 中的二值化图像(0 或 1)
[x, y] = size(img);
dp = zeros(x, y);
dp(1,:) = img(1,:);
dp(:,1) = img(:,1);
for i = 2:x
for j = 2:y
if img(i, j) == 0
dp(i, j) = min([dp(i, j - 1), dp(i - 1, j), dp(i - 1, j - 1)]) + 1;
end
end
end
大 x 和 y 的代码需要很多时间,可能是因为 if 条件和使用 for 循环而不是编写矢量化代码。
谁能优化它。?
或者是否有任何方法可以通过利用矩阵img 包含 0 或 1(1 少于 0)这一事实来优化上述代码。
还有可能以某种方式使用并行for循环来加快速度吗?
【问题讨论】:
标签: matlab image-processing optimization dynamic-programming