arrays - 为什么绝对值差异测试在 MATLAB 中没有给出正确的结果
问题描述
我有一个在 MATLAB 中读取的灰度图像,我想通过绝对阈值差 [0,1,3] 计算有多少像素与左侧邻居具有相同或不同的值的比率。最初我使用以下代码:
[row,col] = size(processed_map);
flagged_map = zeros(row,col);
for thres = [0,1,3]
cnt = 0;
for i=1:row
if (mod(i, 10) == 0)
%fprintf('Line %i is processed .\n', i);
end
for j =2:col
left_n = processed_map(i,j-1);
current = processed_map(i,j);
if(abs(left_n - current) <= thres)
fprintf('Current Pixel Value = %i , its neighbour value = %i \n',current,left_n);
cnt = cnt + 1;
flagged_map(i,j) = 1;
end
end
end
format long g
Ratio = round(100 * cnt/(row * (col-1)),2);
fprintf('DELTA = %i : %.2f \n',thres,Ratio);
end
对于“0”的阈值,这意味着我正在寻找相同的邻居值。当它进入“如果条件相同的值”时,我得到一些打印的语句输出为
Current Pixel Value = 118 , its neighbour value = 53
Current Pixel Value = 119 , its neighbour value = 118
这当然是不正确的!我不知道为什么!但是,当我使用以下 if
阈值 = 0 的声明
if(left_n == current)
所有输入的 current 和 left_n 像素都符合预期。当编写为给定代码时,其他阈值绝对条件也会发生相同的错误。
解决方案
推荐阅读
- javascript - 如何在javascript(nodejs)中读取带有订单保证的json文件?
- javascript - 检测点击块元素的文本部分
- spring-boot - 升级到 spring boot 2.1.3 到 2.1.4 在启动时给出 tomcat 异常
- python - 如何从 Neo4j 数据库中获取值的计数?
- azure - Azure AKS 自动缩放故障排除
- reactjs - data-binding radio field in redux-form
- opencv - 我们如何从旋转矩阵中找到θ?
- r - 两组变量之间的相关性
- javascript - 在 redux 中更新状态接收新道具,但由于哪个组件没有重新渲染,因此未在 componentWillReceiveProps 中设置状态
- vue.js - 分离 Vuex 模块的最佳实践是什么?