问题标签 [shape-context]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
3421 浏览

matlab - 在 MATLAB 中绘制形状上下文对数极坐标箱

我使用形状上下文直方图作为特征描述符来编码剪影图像。为了帮助调试,我想查看覆盖在轮廓图像上的形状上下文 logpolar 箱(从边缘图像中获取的样本点)。

其中一个点的外观示例如下:覆盖形状上下文对数极坐标箱

我知道如何显示圆圈(径向箱),但我在制作角度箱(线)时遇到了困难。

给定一组角度,我如何绘制类似于示例图像中显示的线段?

0 投票
1 回答
94 浏览

c++ - 形状上下文中的边缘点采样

我最近准备使用shape contextSVM做字符识别。中的直方图shape context被认为是字符的特征向量。然而,在边缘检测之后,如何对两个可能完全不同点的字符边缘的边缘点进行采样呢?随机抽样似乎不好。

0 投票
0 回答
470 浏览

python - 从 OpenData 匹配道路标记的形状

现在我致力于从 OpenData 生成道路标记。因为我是编程新手,所以我使用 Python。我处理正射影像并将它们转换为二值照片(仅黑白像素)。之后我得到这样的照片:

下一步是识别给定示例图片上的各种道路标记。我认为这应该可以通过“形状上下文匹配”来实现。

所以我写了这段代码(a 一个是原始的转向箭头,b b是从示例图片中提取的转向箭头)来比较这里的各种转向箭头和原始转向箭头:

但是当我想执行我的代码时,它会说:

cv2.error: /Users/travis/build/skvark/opencv-python/opencv/modules/shape/src/haus_dis.cpp:139: 错误: (-215) (set1.channels()==2) && (set1 .cols>0) 在函数 computeDistance

“a”的分辨率是:32 x 131 px ,“b”的分辨率是:18 x 29 px ,这是否还有问题?

谢谢你的努力 :)


编辑:

我将代码更改为以下内容:

ab比较的结果是:d1 = 28.4604988098, d2 = 0.320339113474

但是当我将a与例如c ( ) 进行比较时,程序会因以下错误而停止:

cv2.error: /Users/travis/build/skvark/opencv-python/opencv/modules/core/src/matmul.cpp:1218: 错误: (-215) type == CV_64FC2 in function gemmImpl

0 投票
1 回答
862 浏览

python - 通过计算两个不同形状的距离来计算形状上下文误差

简而言之,我想通过“形状上下文”匹配来比较不同的道路标记。

您可以在下面看到我的第一个问题:从 OpenData 匹配道路标记的形状

我解决了我的第一个问题,但现在出现了一个新错误。这是我的代码:

当我将a(原始转弯箭头) 在此处输入图像描述b(提取的转弯箭头)进行比较时在此处输入图像描述,没有问题,但是当我将ac(测试“形状匹配”算法的其他任何东西)进行比较时,在此处输入图像描述出现以下错误:

OpenCV 错误:gemmImpl 中的断言失败(类型 == CV_64FC2),文件 /Users/travis/build/skvark/opencv-python/opencv/modules/core/src/matmul.cpp,第 1218 行

回溯(最后一次调用):文件“/test_shape.py”,第 74 行,在 d2 = sd.computeDistance(ca[0],cb[0])

cv2.error: /Users/travis/build/skvark/opencv-python/opencv/modules/core/src/matmul.cpp:1218: 错误: (-215) type == CV_64FC2 in function gemmImpl

该错误仅发生在“形状上下文”的生成距离函数而不是“Hausdorff”的生成距离函数中

0 投票
1 回答
1018 浏览

python - cv2.createShapeContextDistanceExtractor 总是返回 0.0

我想使用 cv2 的 Hausdorff 距离或形状上下文距离测量来计算两个形状之间的距离。这些形状是黑色背景上的简单白色形状。

为了找到两个形状之间的距离,我找到每个形状的轮廓,然后将轮廓传递给以下函数:ShapeDistanceExtractor::computeDistance(contours1, countours2) 和 HausdorffDistanceExtractor::computeDistance(contours1, countours2)。

您能否解释一下,为什么在比较期间 ShapeDistanceExtractor 总是返回 0.0,而第二种方法会根据图像上字符的位置给出不同的结果?