gpt4 book ai didi

image-processing - 图像算法中的图像

转载 作者:行者123 更新时间:2023-12-04 08:31:46 25 4
gpt4 key购买 nike

我需要一种用任何语言编写的算法来在图像中找到图像,包括不同比例的图像。有谁知道解决此类问题的起点?

例如:

我有一个 800x600 的图像,在该图像中是一个周长为 180 像素的黄色球。我需要能够使用周长为 15 像素的黄色球的搜索模式找到此图像。

谢谢

最佳答案

这是一个算法:

  • 将图像拆分为 RGB并走蓝色 channel 。您会注意到彩色图像中的黄色区域现在在蓝色 channel 中变暗了。这是因为蓝色和黄色是 complementary colors .
  • 反转蓝色 channel
  • 使用与图像大小相同的圆圈(周长 180 像素)创建灰度搜索模式。使其成为黑色背景上的白色圆圈。
  • 计算 cross-correlation具有反向蓝色 channel 的搜索模式。
  • 互相关峰值将对应于球的位置。

  • 这是运行中的算法:

    RGB 和 R:

    alt text
    alt text

    G和B:

    alt text
    alt text

    倒 B 和图案:

    alt text
    alt text

    Python + OpenCV 代码:
    import cv
    if __name__ == '__main__':
    image = cv.LoadImage('ball-b-inv.png')
    template = cv.LoadImage('ball-pattern-inv.png')

    image_size = cv.GetSize(image)
    template_size = cv.GetSize(template)
    result_size = [ s[0] - s[1] + 1 for s in zip(image_size, template_size) ]

    result = cv.CreateImage(result_size, cv.IPL_DEPTH_32F, 1)

    cv.MatchTemplate(image, template, result, cv.CV_TM_CCORR)

    min_val, max_val, min_loc, max_loc = cv.MinMaxLoc(result)

    print max_loc

    结果:
    misha@misha-desktop:~/Desktop$ python cross-correlation.py 
    (72, 28)

    这为您提供了图像中图案第一次出现的左上角坐标。如果要找到圆的中心,请将圆的半径添加到 x 和 y 坐标。

    关于image-processing - 图像算法中的图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4720168/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com