如何在谐波图像中找到孔洞的位置?

2024-05-15 10:50:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我试着在规则形状的图像中找到缺陷或变化,这样

我想找到它的变形位置,它可能会改变它的位置,这样

我试图通过图像像素和python中x和y坐标的位置来实现这一点

    imgdata = image.getdata()
    imgWidth, imgHeight = image.size
    x_pos = 0
    y_pos = 1
    pixel_value = []
    x = []
    y = []
    
    for item in imgdata:
        item = str(item)
    
        if (x_pos) == imgWidth:
            x_pos = 1
            y_pos += 1
        else:
            x_pos += 1
    
        if item[1] != 0:
            pixel_value.append(item[0])
            x.append(x_pos)
            y.append(y_pos)
    
    pixel_value, x, y = zip(*sorted(zip(pixel_value, x, y), reverse=True))

df = pd.DataFrame({'target':pixel_value,'X': x,  'Y': y })

但是这定位了像素和像素的位置,我找不到霍尔的位置? 如果有人能推荐找到霍尔的最佳方法,我将不胜感激 非常感谢


Tags: pos图像imageifvalue规则像素zip
2条回答

您可以重复尝试泛洪填充,例如使用红色填充,从图像中的多个种子点开始,然后计算得到的红色像素数。在“洞”中,它会更大,然后你可以找到红色像素的面积和质心

您必须将种子点分布在整个图像中,可能距离小于当前白色晶格孔的半径

enter image description here

我认为这种方法不会那么快,所以您可能希望使用多处理


您还可以通过将图像制作成Numpy数组,然后使用以下方法查看图像行(和/或列)中的像素总和:

rowSums = np.sum(image, axis=1)

enter image description here

如果晶格中有洞,则一行中的白色像素会更多,黑色像素会更少,因此总和会更高

enter image description here

enter image description here

通过像素的总和,我可以采用与你类似的方式,因为我是第一种方式,现在我有了行和列中像素最大值的总和,我如何达到最大像素值范围的x和y坐标?我的意思是,对于计算图表中的增长幅度,有什么建议吗

相关问题 更多 >