实际上,我正在使用均值进行自适应阈值化。我使用了3x3矩阵,所以我计算了该矩阵的均值并将其替换为M(1,1)或矩阵的中间位置。我对如何在第一个位置f(0,0)执行该过程感到困惑。
这只是一个小例子,假设我使用的是3x3矩阵(M),图像(f)的第一个位置f(0,0)= M(1,1)=4。因此,M(0,0 )M(0,1)M(0,2)M(1,0)M(2,0)没有值。
-1 | -1 | -1 |
-1 | 4 | 3 |
-1 | 2 | 1 |
哪个是正确的过程,
a)(4 + 3 + 2 +1)/ 4
b)(4 + 3 + 2 +1)/ 9
我之所以这样问,是因为我遵循一些教程的自适应均值阈值法,但结果却有所不同。因此,我需要确保该过程是正确的。谢谢。
答案 0 :(得分:1)
没有解决该问题的“正确”方法。在实践中有许多不同的解决方案,它们都有一些缺点:
仅对已知值进行平均(即您建议的 state = {
displayInput: false
}
handleChange(event, data) {
this.setState({ displayInput: data.value === 'Other' });
}
render() {
return (
<FormItem {...formItemLayout} label="Relation :">
{
getFieldDecorator('Relation', {
rules: [
{ required: true, message: 'Please provide relation!' },
{ max: 200, message: 'Note should be within a 200 characters' }
]
})(
<Select onChange={(event, data) => this.handleChange(event, data)}>
<Option value="Father">Father</Option>
<Option value="Mother">Mother</Option>
<Option value="Husband">Husband</Option>
<Option value="Other">Other</Option>
</Select>
)
}
{
this.state.displayInput && (
<Input placeholder="Other" type="text"/>
)
}
</FormItem>
);
}
)。通过对更少的像素进行平均,可以获得对噪声更敏感的结果(即,在边界附近过滤后图像中留下的“噪声量”更大)。此外,由于平均会发生在仅一侧。
假设图片域外为0 (即您建议的(4+3+2+1)/4
)。由于我们不知道图像外部是什么,因此假设0和其他任何东西一样好,不是吗?好吧,不,不是。这会导致滤镜结果的边缘周围的值更暗。
假定为周期性图像。这里,从图像的另一侧获取未知值的值。当计算通过傅立叶域的卷积时,这实际上发生了。但是通常图像不是周期性的,图像相对两侧的强度(或颜色)差异很大,导致图像相对颜色的“渗色”。
外推。通过外推扩展图像数据是一项冒险的业务。这基本上归结为预测如果我们对它们进行了成像,这些像素将发生什么。最安全的选择是0阶外推法(即复制边界像素),尽管也可以进行更高阶的多边形拟合。缺点是图像边缘的像素比其他像素更重要,它们在平均中的权重会更大。
镜像。此处,图像在边界处反射(想象在图像的边缘放置一面镜子)。索引-1处的值取为索引1处的值;在索引-2处,在索引2处,等等。这与外推法具有类似的缺点。