opencv - 使用OpenCV从侧面识别和计数书籍

标签 opencv image-processing computer-vision

只是希望收到一些关于我可以解决这个问题的想法。

为了更清晰的图片,这里是我们正在查看的一些图片的示例:

enter image description here enter image description here enter image description here

我已经尝试过对其进行阈值处理,例如 otsu、blobing 等。但是,我仍然无法分割出书籍并正确计算它们。精装当然容易,因为封面清楚地把书分开了,但说到平装,我就数不清书的数量了。

有人对我能做什么有什么建议吗?任何帮助将不胜感激。谢谢。

最佳答案

我运行了一个 sobel 边缘检测器并使用 Hough 变换来检测最后一张图像上的线条,它似乎对我来说工作正常。然后,您可以链接 sobel 边缘检测器输出的边缘,然后计算水平线的数量。或者,您可以对使用 Hough 检测到的线条的输出执行相同的操作。

您可以通过将图像转换为二值图像来进一步缩小感兴趣的区域。所有这些运算符的输出如下图所示(我无法上传图像,所以不得不在这里托管)http://www.pictureshoster.com/files/v34h8hvvv1no4x13ng6c.jpg

引用http://www.mathworks.com/help/images/analyzing-images.html#f11-12512有关如何进行边缘、线和角检测的一些更有用的示例。

希望这对您有所帮助。

关于opencv - 使用OpenCV从侧面识别和计数书籍,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21487658/

相关文章:

python - cv2.矩形 : TypeError: Argument given by name ('thickness' ) and position (4)

machine-learning - 理解pycaffe中的load_image()方法

c++ - opengl 3D 编程中的 SDL 与 GLUT

python - 如何垂直合并/附加/堆叠/粘贴文件夹中的所有图像到新图像

python - 如何提取图像的边界(OCT/视网膜扫描图像)

php - file_get_contents 到图像并更改质量

python - 透视单应性问题

c++ - OpenCV Mat 数据结构

c++ - OpenCV 错误 : Assertion failed ((img. depth() == CV_8U || img.depth() == CV_32F)

opencv - 使用 OpenCV 进行 Logo 检测