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
Python-如何检测多个缩略图的硬边并保存坐标?_Python_Image Processing - Fatal编程技术网

Python-如何检测多个缩略图的硬边并保存坐标?

Python-如何检测多个缩略图的硬边并保存坐标?,python,image-processing,Python,Image Processing,我们有一个扫描的白色页面,A4大小,包含多个缩略图。 缩略图相似,但不完全相同。 缩略图可以是随机顺序,而不是非常清晰的行和列。它们不是完全随机的,但它们是成行的,但是这些不是非常精确的行 A4页背景色为白色 所有缩略图的黑色边框为5px,边框半径为10px 每个缩略图都包含一个绿色圆圈(可以在中间或靠近该圆圈的位置) 1.我们如何检测每个缩略图的硬边,并存储坐标,以便裁剪缩略图以供以后处理和分析颜色 2.我们如何检测中心的圆。我们要分析并获得包含在这个圆中的所有像素RGB值,然后计算平均RGB

我们有一个扫描的白色页面,A4大小,包含多个缩略图。 缩略图相似,但不完全相同。 缩略图可以是随机顺序,而不是非常清晰的行和列。它们不是完全随机的,但它们是成行的,但是这些不是非常精确的行

  • A4页背景色为白色
  • 所有缩略图的黑色边框为5px,边框半径为10px 每个缩略图都包含一个绿色圆圈(可以在中间或靠近该圆圈的位置)

    1.我们如何检测每个缩略图的硬边,并存储坐标,以便裁剪缩略图以供以后处理和分析颜色

    2.我们如何检测中心的圆。我们要分析并获得包含在这个圆中的所有像素RGB值,然后计算平均RGB值


  • 更新

    这是图像:


    谢谢你

    主要观点:由于各区域之间有足够的空白,因此只需按
    等高线
    裁剪每个区域即可。然后,对于每个区域,使用
    houghcirle
    检测其中的圆


    你的形象是这样的:

    查找外部轮廓并计算边界框后:

    对于每个轮廓,裁剪并找到其中的hough圆


    注意:我不会为这个问题提供我的代码

    但是发布一些链接可能对你有用。自学成才:


  • 更新:

    要检测圆,应选择正确的参数,取决于源图像

    尝试尝试尝试 下面是我尝试的圆检测:

    circles = cv2.HoughCircles(gray, cv2.HOUGH_GRADIENT,
                        dp=1, minDist=20, circles=None,
                        param1=200 , param2=50,
                        minRadius=120, maxRadius=150
                    )
    

    主旨:由于区域之间有足够的空白,因此只需通过
    等高线
    裁剪每个区域即可。然后,对于每个区域,使用
    houghcirle
    检测其中的圆


    你的形象是这样的:

    查找外部轮廓并计算边界框后:

    对于每个轮廓,裁剪并找到其中的hough圆


    注意:我不会为这个问题提供我的代码

    但是发布一些链接可能对你有用。自学成才:


  • 更新:

    要检测圆,应选择正确的参数,取决于源图像

    尝试尝试尝试 下面是我尝试的圆检测:

    circles = cv2.HoughCircles(gray, cv2.HOUGH_GRADIENT,
                        dp=1, minDist=20, circles=None,
                        param1=200 , param2=50,
                        minRadius=120, maxRadius=150
                    )
    


    发布你的图片和一些可能有用的链接:谢谢。我正在上传一张图片到帖子上@这听起来像是课堂作业,不是吗?图像是规则的,所以不难处理。我发布的链接可能对这张图片没有多大帮助。发布你的图片和一些可能有用的链接:谢谢。我正在上传一张图片到帖子上@这听起来像是课堂作业,不是吗?图像是规则的,所以不难处理。我发布的链接可能对此图像没有多大帮助。我已成功检测到外部边界,并将其裁剪并保存到新文件夹中。现在我需要在圆圈上工作。我想在所有经过处理的矩形上循环,检测每个矩形中的圆,然后裁剪圆。我希望最终能够对每个圆进行分析,在每个圆内尽可能多的像素中分析颜色,这样我就能找到每个圆中的平均颜色值。有什么帮助吗?:-)由于每个圆中像素的颜色几乎相同,因此不需要找到精确的圆。使用hough圆检测(如链接6)检测每个矩形中的圆,结果可能与我在这个答案中发布的结果一样。正如您所看到的,检测到的圆实际上与原点不同,因为它是黑色边框。然后减小半径,确保检测到的圆位于原始圆中。然后裁剪圆并进行分析。我已经按照链接6中的代码进行了操作。然而,我猜圆=np.int0(np.array(circles))中存在一个问题,您试图获得中心的平均值并进行偏移。circles=np.int0(np.array(circles))类型错误:int()参数必须是字符串、类似字节的对象或数字,而不是“NoneType”。似乎circles始终等于None。。。这就是为什么我在前面的评论中得到了前面的错误。然而,我不知道为什么我会得到圆圈=无。为了检查圆检测,我在这里尝试做什么。我只制作了一个包含一个圆的裁剪矩形缩略图。我只是给你一个链接,显示
    有一种检测圆的方法。我使用的参数已针对该项目进行了调整。当然,它是所有检测到的圆的平均值。在那种情况下,这是正确的。我想你的图像,你应该尝试调整你的参数。例如,不需要采取手段。我发布的结果很好(因为我设置了正确的参数),我成功地检测到了外部边界,并将它们裁剪并保存到新文件夹中。现在我需要在圆圈上工作。我想在所有经过处理的矩形上循环,检测每个矩形中的圆,然后裁剪圆。我希望最终能够对每个圆进行分析,在每个圆内尽可能多的像素中分析颜色,这样我就能找到每个圆中的平均颜色值。有什么帮助吗?:-)由于每个圆中像素的颜色几乎相同,因此不需要找到精确的圆。使用hough圆检测(如链接6)检测每个矩形中的圆,结果可能与我在这个答案中发布的结果一样。如您所见,检测到的圆实际上与原点不同,因为它是黑色的