Python 如何在通过校准之前检查图像?

Python 如何在通过校准之前检查图像?,python,opencv,image-processing,computer-vision,camera-calibration,Python,Opencv,Image Processing,Computer Vision,Camera Calibration,我正在执行教程中所示的校准(使用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 (

我正在执行教程中所示的校准(使用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))
corners2=cv.cornerssubpix(灰色,角,(8,8),(-1,-1),标准)
retval,mask=cv.findHomography(拐角2,obj_p,cv.LMEDS,5.0)
如果(len(mask)-(np.count_非零(mask==0)))<77:
用“+str”打印(图像+”已删除->“+str(计数)+”(
异常值+=1
其他:
obj_points.append(obj_p)
img_点追加(拐角2)
打印(图像+'在数字->'+str(计数)处处理)
据我所知,如果图像有3个以上的异常值(80个角-77个角),它将删除图像


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

单应只能在已经校正镜头畸变的情况下才能正常工作,但镜头畸变参数是校准的输出,因此存在一个问题…如何测量锐度/图像质量并在棋盘周围添加一些QR码,以便您可以根据QR码检查检测到的角点?另一种方法是y-charuco标记和相应的校准