如何画出臀部

问题描述

我是新来学习Opencv的人。 最近,我正在尝试计算机视觉,尤其是图像处理。下面的代码是我最近一直在做的事情,这是关于“绘制Epilines”的。 我遇到了问题,需要天才帮助

'''
将numpy导入为np 导入cv2

def drawLines(img1,img2,lines,pts1,pts2):
    r,c = img1.shape
    img1 = cv2.cvtColor(img1,cv2.COLOR_GRAY2BGR)
    img2 = cv2.cvtColor(img2,cv2.COLOR_GRAY2BGR)

    for r,pt1,pt2 in zip(lines,pts2):
        color = tuple(np.random.randint(0,255,3).tolist())
        x1,y1 = map(int,[0,-r[2]/r[1]])
        x2,y2 = map(int,[c,-(r[2]+r[0]*c)/r[1]])
        cv2.line(img1,(x1,y1),(x2,y2),color,1)
        cv2.circle(img1,tuple(pt1),3,-1)
        cv2.circle(img2,tuple(pt2),-1)
        
    return img1,img2

def epipolar():
    img1 = cv2.imread('C.jpg',cv2.IMREAD_GRAYSCALE)
    img2 = cv2.imread('D.jpg',cv2.IMREAD_GRAYSCALE)

    sift = cv2.xfeatures2d.SIFT_create()

    #sift를 이용해 키포인트검출 및 디스크립터 게산
    kp1,des1 = sift.detectAndCompute(img1,None)
    kp2,des2 = sift.detectAndCompute(img2,None)

    #FLANN 파라미터
    FLANN_INDEX_KDTREE=0
    index_params = dict(algorithm = FLANN_INDEX_KDTREE,trees=5)
    search_params = dict(checks=50)
    flann =cv2.FlannBasedMatcher(index_params,search_params)
    matches = flann.knnMatch(des1,des2,k=2)

    good,pts2 = [],[],[]

    for i,(m,n) in enumerate(matches):
        if m.distance < 0.5*n.distance:
            good.append(m)
            pts2.append(kp2[m.trainIdx].pt)
            pts1.append(kp1[m.queryIdx].pt)
        
    pts1 = np.float32(pts1)
    pts2 = np.float32(pts2)
    F,mask = cv2.findFundamentalMat(pts1,pts2,cv2.FM_LMEDS)

    # 정상 pts만 선택
    pts1 = pts1[mask.ravel()==1]
    pts2 = pts2[mask.ravel()==1]

    # 두번째 이미지에 있는 점들에 대응되는 epline 검출 후,첫번째 이미지에 그리기
    lines1 = cv2.computeCorrespondEpilines(pts2.reshape(-1,1,2),2,F)
    lines1 = lines1.reshape(-1,3)
    img5,img6 = drawLines(img1,lines1,pts2)

    # 첫번째 이미지에 있는 점들에 대응되는 epline 검출 후,두번째 이미지에 그리기
    lines2 = cv2.computeCorrespondEpilines(pts1.reshape(-1,F)
    lines2 = lines2.reshape(-1,3)
    img3,img4 = drawLines(img2,img1,lines2,pts1)

    cv2.imshow('img1',img5)
    cv2.imshow('img2',img3)

    cv2.waitKey(0)
    cv2.destroyAllWindows()

epipolar()

'''

我用jupyter-notebook在python中尝试了此代码,但没有弹出任何事件。上面的代码有什么问题?

解决方法

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

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

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