Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/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_Opencv_Image Recognition_Imagej - Fatal编程技术网

Image processing 从图像文件中提取坐标

Image processing 从图像文件中提取坐标,image-processing,opencv,image-recognition,imagej,Image Processing,Opencv,Image Recognition,Imagej,如何获取图像中(绘制)直线的坐标数组?坐标应相对于图像边框。输入:*。img。输出坐标数组(具有固定步长)。有没有第三方软件可以这样做?例如,有高对比度差异-白色背景和黑色线条;或红色和绿色等 示例: 哦,你是说非直线。你需要定义一条“线”。直观地说,您可能指的是图像的一个连接区域,其中轴长度与中轴与边缘之间的距离之间具有高纵横比(即相对长而窄,即使它绕着方向)。可能的办法: 阈值或按颜色选择。可能根据颜色的直方图按颜色选择,或者按此处所述进行后期处理:,然后调用scipy.ndimage.m

如何获取图像中(绘制)直线的坐标数组?坐标应相对于图像边框。输入:*。img。输出坐标数组(具有固定步长)。有没有第三方软件可以这样做?例如,有高对比度差异-白色背景和黑色线条;或红色和绿色等

示例:

哦,你是说非直线。你需要定义一条“线”。直观地说,您可能指的是图像的一个连接区域,其中轴长度与中轴与边缘之间的距离之间具有高纵横比(即相对长而窄,即使它绕着方向)。可能的办法:

  • 阈值或按颜色选择。可能根据颜色的直方图按颜色选择,或者按此处所述进行后期处理:,然后调用scipy.ndimage.measurements.label()

  • 对于上面的每个区域。有用的教程:“”。但是,您可能还需要到边的距离,因此使用(…,return_distance=True)

  • 对骨架进行某种清理/过滤,以删除短分支等。考虑到您的特殊用途,并假设您的线不循环,您可以在骨架中找到最长的单条路径。在这里,您还可以根据形状骨架中最长路径的长度(相对于到边的距离)来决定形状是否为“线”。不知道如何在opencv中最好地做到这一点,但斐济/ImageJ中的“分析骨架”将允许您按分支长度进行过滤

  • 剩下的是最长的原始“线”形状。您可以将其重采样到您喜欢的某个步骤,或者使用样条曲线拟合它,等等

由于您想做的事情的性质,很难拿出一个可以处理一系列图像的示例代码。这可能需要一些仔细的调整。我建议使用一小部分图像(语料库),在它们上运行任何版本的算法,并手动检查结果,直到结果非常好,然后在大型语料库上尝试

编辑:原始答案,仅适用于直线:

您可能需要使用()

Python示例代码:


编辑:相关问题和要骨架化的示例代码:

哦,你是说非直线。你需要定义一条“线”。直观地说,您可能指的是图像的一个连接区域,其中轴长度与中轴与边缘之间的距离之间具有高纵横比(即相对长而窄,即使它绕着方向)。可能的办法:

  • 阈值或按颜色选择。可能根据颜色的直方图按颜色选择,或者按此处所述进行后期处理:,然后调用scipy.ndimage.measurements.label()

  • 对于上面的每个区域。有用的教程:“”。但是,您可能还需要到边的距离,因此使用(…,return_distance=True)

  • 对骨架进行某种清理/过滤,以删除短分支等。考虑到您的特殊用途,并假设您的线不循环,您可以在骨架中找到最长的单条路径。在这里,您还可以根据形状骨架中最长路径的长度(相对于到边的距离)来决定形状是否为“线”。不知道如何在opencv中最好地做到这一点,但斐济/ImageJ中的“分析骨架”将允许您按分支长度进行过滤

  • 剩下的是最长的原始“线”形状。您可以将其重采样到您喜欢的某个步骤,或者使用样条曲线拟合它,等等

由于您想做的事情的性质,很难拿出一个可以处理一系列图像的示例代码。这可能需要一些仔细的调整。我建议使用一小部分图像(语料库),在它们上运行任何版本的算法,并手动检查结果,直到结果非常好,然后在大型语料库上尝试

编辑:原始答案,仅适用于直线:

您可能需要使用()

Python示例代码:


编辑:相关问题和骨架化示例代码:

您将在什么平台上执行此操作?如果要提取对比度高的角点,OpenVC是一个不错的选择。可以推荐任何好的教程吗?以下是我发现的一个示例。看看这是否是你想要的。你打算在什么平台上做这件事?如果你想提取对比度高的角点,OpenVC是一个不错的选择。有什么好的教程可以推荐吗?这是我发现的一个例子。看看这是不是你要找的东西