我从左侧看到一个钢琴键盘的透视图,如下所示:
我手动勾勒出键盘的四个角,并将其输入openCV getPerspectiveTransform函数,以获得键盘的俯视图。 结果是:
我发现,如果我没有精确地勾勒出键盘的4个角,透视变换输出中的白色键的边缘将不会完全垂直
然后我想画出所有白键的轮廓。 因为钢琴的白键都是等距排列的,所以我只是将俯视图平均水平分成33个部分。然后,我根据原始图像中键盘底部与顶部的长度比例缩放轮廓的底部边缘。我得到了这个输出
但是,白色关键点的轮廓与白色关键点边缘不匹配
即使白键的边缘不是完全垂直,我如何利用白键都是均匀分布的这一事实来分割白钢琴键
*我不想使用边缘检测算法分割白色关键点,因为有时在某些照明条件下,边缘不可见
看起来透视变换只使用了4个点,有点不对劲。尝试多使用一些,并使用cv2.findHomography和cv2.warpPerspective来完成这项工作。一旦有了更好的透视图转换,就可以继续进行其余的转换
使用v2.findHomography和cv2.warpPerspective的代码示例可以找到:
https://www.learnopencv.com/homography-examples-using-opencv-python-c/
祝你好运
相关问题 更多 >
编程相关推荐