如何在传递到校准之前检查图像?

问题描述

我正在按照 this 教程中的说明进行校准(使用 8 x 10 角棋盘)。

我希望我的校准例程决定图像是否适合校准,目前用户决定每个图像的好坏(例如:检测到图案但模糊或弯曲)。

我正在尝试利用 OpenCV 的单应性(如下所示)来解决这个问题:

corners2 = cv.cornerSubPix(gray,corners,(8,8),(-1,-1),criteria)
retval,mask = cv.findHomography(corners2,obj_p,cv.LMEDS,5.0)
if (len(mask) - (np.count_nonzero(mask == 0))) < 77:
    print(image + ' removed -> ' + str(count) + 'with ' + str(
    outliers += 1
else:
    obj_points.append(obj_p)
    img_points.append(corners2)
    print(image + ' is processed at number -> ' + str(count))

据我所知,如果图像有 3 个以上的异常值(80 个角 - 77 个)

它确实从校准中删除了相当多的图像,但与我执行校准、删除具有高 RMS 误差的图像并再次执行校准(这太慢)的方法相比,它并没有给我更好的结果。>

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)