我有一个函数,它通过假设锚点是矩阵的第一个元素来扩展/侵蚀函数。
1 1 1
1 1 1
1 1 1
我还有其他函数,可以通过假设锚点是矩阵的中间点来扩展/侵蚀函数。
1 1 1
1 1 1
1 1 1
有什么办法使第一次输出矩阵像第二次输出,即移位图像,经过扩张/腐蚀操作?
发布于 2014-01-30 20:13:04
在第一种情况下,每个3*3掩码中的最大元素(膨胀,或侵蚀中的最小元素)设置为[-1,-1]位置,而在第二种情况下,则设置为[0,0]。所以如果你不考虑边界效应,你就会
I1[0:n-1,0:m-1] == I2[1:n-2,1:m-2]其中[n,m]是原始图像的大小,I、I1和I2是I上的形态学运算,分别以topleft锚点和中间锚点为核心。
您可以将边界值与类似的分析进行比较,也可以直接用dilate和erode测试结果。
发布于 2014-02-25 08:31:53
在第一种情况下,锚点应该设置为0,0,在第二种情况下,在中间设置为1,1。如果使用-1,-1作为锚点,它将默认为掩码的中心,例如在测试不同内核大小时非常有用。(见http://docs.opencv.org/modules/imgproc/doc/filtering.html?highlight=dilate#dilate)
对于其余部分,您可以查看教程:dilatation.html
关于您的具体问题,除了边界上的情况外,您还可以得到输出矩阵的子矩阵(使用cv::Mat中的操作符括号),其中的坐标将是您需要的。
https://stackoverflow.com/questions/21463979
复制相似问题