Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Image processing 二值灰度图像的矢量化_Image Processing_Graphics_Computer Vision_Graphics2d_Vector Graphics - Fatal编程技术网

Image processing 二值灰度图像的矢量化

Image processing 二值灰度图像的矢量化,image-processing,graphics,computer-vision,graphics2d,vector-graphics,Image Processing,Graphics,Computer Vision,Graphics2d,Vector Graphics,我有黑白二值灰度位图图像,其中包含直线、曲线和一些简单形状、椭圆和多边形,我的目标是将这些元素描述为公式 其中一个选择是在图像上应用矢量化,但我不是这方面的专家,所以我需要你的帮助来建议我能做什么。是否有任何工具或库能够提供描述这些对象的公式 谢谢你如果你有很好的不间断的形状,你可以用类似的东西来追踪它们的轮廓。但是,如果您没有正确描述的输入非常嘈杂且粗略,则该方法应依赖于Hough变换,见下文。同样,在拟合曲线时,很大程度上取决于噪声水平和异常值的存在,例如,不是形状的背景元素或只是近似的不准

我有黑白二值灰度位图图像,其中包含直线、曲线和一些简单形状、椭圆和多边形,我的目标是将这些元素描述为公式

其中一个选择是在图像上应用矢量化,但我不是这方面的专家,所以我需要你的帮助来建议我能做什么。是否有任何工具或库能够提供描述这些对象的公式


谢谢你

如果你有很好的不间断的形状,你可以用类似的东西来追踪它们的轮廓。但是,如果您没有正确描述的输入非常嘈杂且粗略,则该方法应依赖于Hough变换,见下文。同样,在拟合曲线时,很大程度上取决于噪声水平和异常值的存在,例如,不是形状的背景元素或只是近似的不准确形状,比如说一个合适的椭圆。除非是家庭作业,否则很难想象在一个典型的任务中有合适的干净线条和合适的形状

和是openCV库中使用最广泛的函数。请注意,拟合椭圆非常重要,因为它们有5个参数,直线有2个,圆有3个,并且Hough空间增长过大。矩形可以用霍夫线或特殊的矩形霍夫线找到。其他形状可以使用广义非参数Hough检测

拟合曲线应使用RANSAC去除异常值,并使用点距离的几何最小二乘法拟合以最小化像素噪声。后一个过程通常涉及非线性优化,应通过更简单的代数拟合进行初始化。幸运的是,对于简单的几何图元,拟合函数已经编写好,请参见


底线是,考虑到你的形状有点嘈杂,你的任务非常琐碎,以至于你可能没有意识到,因此应该分为几个子项目,如查找形状、拟合曲线等。

如果你有很好的不间断形状,你可以使用类似的工具跟踪它们的轮廓。但是,如果您没有正确描述的输入非常嘈杂且粗略,则该方法应依赖于Hough变换,见下文。同样,在拟合曲线时,很大程度上取决于噪声水平和异常值的存在,例如,不是形状的背景元素或只是近似的不准确形状,比如说一个合适的椭圆。除非是家庭作业,否则很难想象在一个典型的任务中有合适的干净线条和合适的形状

和是openCV库中使用最广泛的函数。请注意,拟合椭圆非常重要,因为它们有5个参数,直线有2个,圆有3个,并且Hough空间增长过大。矩形可以用霍夫线或特殊的矩形霍夫线找到。其他形状可以使用广义非参数Hough检测

拟合曲线应使用RANSAC去除异常值,并使用点距离的几何最小二乘法拟合以最小化像素噪声。后一个过程通常涉及非线性优化,应通过更简单的代数拟合进行初始化。幸运的是,对于简单的几何图元,拟合函数已经编写好,请参见


底线是,考虑到您的形状有点嘈杂,您的任务非常繁琐,您可能没有意识到这一点,因此应该分为几个子项目,如查找形状、拟合曲线等。

也许您需要的是立方贝塞尔:

这是我做过的一个项目,1我用来去除噪音,2我用三次贝塞尔曲线表示曲线,通过使用:

这是原图:

矢量化图像:

因为它已经转换成数学公式,所以可以无限放大

很抱歉,我不能分享代码,因为它是相当巨大的,但我希望你得到的想法

如果需要跟踪库,可以使用以下方法:


另外,如果您只想去除噪声,可以尝试CSS:

也许立方贝塞尔就是您所需要的:

这是我做过的一个项目,1我用来去除噪音,2我用三次贝塞尔曲线表示曲线,通过使用:

这是原图:

矢量化图像:

因为它已经转换成数学公式,所以可以无限放大

很抱歉,我不能分享代码,因为它是相当巨大的,但我希望你得到的想法

如果需要跟踪库,可以使用以下方法:


另外,如果你只想去除噪音,你可以试试CSS:

谢谢@Vlad,我的图像非常干净,因为我正在追踪孩子们画的线,我正在生成这些图像,所以没有背景。只有白色背景上的黑线。是的,你完全正确,我现在正试图把我的问题分成几个子问题。但是这种任务应该已经在矢量化软件中解决了吗?在矢量化图像的文件中,有一些线条和形状公式,一个
我是对的还是完全错了?过去有矢量化的显示器,光束可以代替光栅来绘制形状。有一些函数可以绘制基本体。但这就是所谓的“直接工程”:公式->绘制形状。您正在尝试解决一个逆向工程:多个形状->多个公式,这是一个更难的问题。这里没有独特的配方或图库。谢谢@Vlad,我的图片非常干净,因为我正在追踪孩子们画的线条,我正在生成这些图片,所以没有背景。只有白色背景上的黑线。是的,你完全正确,我现在正试图把我的问题分成几个子问题。但是这种任务应该已经在矢量化软件中解决了吗?在矢量化图像的文件中,有些地方有线条和形状公式,我是对的还是完全错了?以前有矢量化的显示,光束在那里而不是光栅来绘制形状。有一些函数可以绘制基本体。但这就是所谓的“直接工程”:公式->绘制形状。您正在尝试解决一个逆向工程:多个形状->多个公式,这是一个更难的问题。没有独特的食谱或图书馆。我真的不明白你的目标是什么。你的意思是你需要识别给定线条的简单形状吗?例如,用户绘制不完美的噪声六边形,而不知何故,您希望将其细化为近似六边形。。。用户将绘制一条曲线,我想自动找到一个公式来描述这条曲线。我真的不明白你的目标是什么。你的意思是你需要识别给定线条的简单形状吗?例如,用户绘制不完美的噪声六边形,而不知何故,您希望将其细化为近似六边形。。。用户将绘制一条曲线,我想自动找到描述该曲线的公式。太棒了@azer89非常感谢!我的目标实际上是了解这些公式并获得它们。再次感谢你的建议和指导。实际上我还是很困惑,你说的公式是什么意思?你能通过绘制图像图表来阐述你的问题吗?太好了@azer89非常感谢!我的目标实际上是了解这些公式并获得它们。再次感谢你的建议和指导。实际上我还是很困惑,你说的公式是什么意思?你能通过画图像图表来阐述你的问题吗?