在我的一个个人项目中,我尝试在灰度图像上应用以下水平边缘蒙版。通过应用水平边缘蒙版,我试图检测图像中的水平边缘。
setfacl -Rm u:www-data:rwX,u:deploy:rwX application/storage/
当我尝试使用上面给出的蒙版卷积我的图像矩阵时,输出图像旋转180度。我不确定这是预期的行为还是我做错了什么?
这是卷积的代码片段。
[1 2 1
0 0 0
-1 -2 -1]
以下是生成的输出。
答案 0 :(得分:1)
写入输出时的索引相反。您正在翻转水平和垂直坐标,这实际上会转换您的图像输出,而您看到的输出是转置图像的结果。
此外,您无法正确声明图像的输出尺寸。第一个维度跨越行或高度,而第二个维度跨越列或宽度。您必须进行的第一个更改是交换输出图像的输入尺寸:
result = np.zeros((self.mat_height, self.mat_width))
其次,变量index_i
横向遍历,而变量index_j
垂直遍历。您只需翻转订单,以便正确编写结果:
if prod >= 255:
result[index_j, index_i] = 255
else:
result[index_j, index_i] = 0
如果由于某种原因您不想更改订单,请将代码保留原样,包括如何声明图像的输出尺寸并简单地返回转置的结果:
return result.T