招聘&找人【悬赏500】解决一个技术难点 opencv 进 (已解决)

头像
克洛格
296阅读7评论

要求,使用 python3.10以上
使用 opencv / 其他图片识别库 (不能用 yolo之类的 因为我懒得准备训练数据,而且效果不一定能保证,且占用还高)

目前效果,有六张图,其中图4 和 图 6 无法被匹配

使用的是简单的灰度匹配,相似度要达到 5或以上 二极化也试过了

def save_img(index: int):
    for item in methods:
        me = eval(item)
        img_rgb = cv.imread(imgs[index])
        img_gray = cv.cvtColor(img_rgb, cv.COLOR_BGR2GRAY)
        template = cv.imread(target_img, 0)
        w, h = template.shape[::-1]

        res = cv.matchTemplate(img_gray, template, cv.TM_CCOEFF_NORMED)
        threshold = 0.45
        loc = np.where(res >= threshold)

        for pt in zip(*loc[::-1]):
            cv.rectangle(img_rgb, pt, (pt[0] + w, pt[1] + h), (0, 0, 255), 2)

        cv.imwrite(f"res${index}.png", img_rgb)

有意者可以联系我 ,先提供部分思路,然后我感觉可行了,发你图片你做demo

招聘类型:
外包零活
职业:
开发
工作方式:
线上兼职
需消耗电量 5
收藏
举报
加载中…
精选评论
头像
等级2

我觉得这种需求你可以开一个讨论帖,把图片、具体要求也一并发出来,大家应该会免费提供思路的,然后你再去实现它。
如果opencv不太好的话,我这边一些方法不知道妥否:

  1. 可以使用CLIP模型来提取图片特征,它是zero-shot不需要ft可能效果也好
  2. 将特征向量存入es8,利用其向量匹配检索来Top1的图片(你可以指定匹配度)

小缺陷是:如果图片很多的话,CLIP这块提取特征需要一些计算资源。

我最终的目的肯定是用来实时匹配的,不是做静态的处理大量数据的情况
至于放出来图吧emm 我晚上回去了吧 在公司不方便上传

头像
等级0

可以考虑使用自适应阈值来进行二值化。OpenCV 中提供了 cv.adaptiveThreshold 函数。使用其他颜色空间转换,例如HSV(色相、饱和度、亮度)或者LAB(色彩亮度),看看是否能够更好地区分目标物体与背景。尝试不同类型的滤波器,如高斯滤波、中值滤波等。考虑使用直方图均衡化。使用SIFT、SURF、ORB等算法,对光照和背景变化更具鲁棒性。

头像
等级0

楼主可以发图给我试试吗

头像
等级1

模板我已经扣成了带有透明通道的png,只不过似乎图片格式有点问题,拿来识图可以,但是导入到 ps后再导出背景就是黑色的了,且会模糊,因为当时我拿 在线PS做的

头像
等级1

有尝试过 二极化,滤波器,效果都不理想,可能是我使用的有问题?

大概无法识别的原因是,一个背景是深色,一个背景是亮色