微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何画出臀部

如何解决如何画出臀部

我是新来学习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 举报,一经查实,本站将立刻删除。