如何使用透视变换在openCV中分割白色钢琴键

2024-06-28 19:13:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我从左侧看到一个钢琴键盘的透视图,如下所示:

piano perspective

我手动勾勒出键盘的四个角,并将其输入openCV getPerspectiveTransform函数,以获得键盘的俯视图。 结果是:

俯视图 overhead view

我发现,如果我没有精确地勾勒出键盘的4个角,透视变换输出中的白色键的边缘将不会完全垂直

然后我想画出所有白键的轮廓。 因为钢琴的白键都是等距排列的,所以我只是将俯视图平均水平分成33个部分。然后,我根据原始图像中键盘底部与顶部的长度比例缩放轮廓的底部边缘。我得到了这个输出

enter image description here

但是,白色关键点的轮廓与白色关键点边缘不匹配

即使白键的边缘不是完全垂直,我如何利用白键都是均匀分布的这一事实来分割白钢琴键

*我不想使用边缘检测算法分割白色关键点,因为有时在某些照明条件下,边缘不可见


Tags: 函数手动键盘opencv边缘轮廓关键点透视图
1条回答
网友
1楼 · 发布于 2024-06-28 19:13:04

看起来透视变换只使用了4个点,有点不对劲。尝试多使用一些,并使用cv2.findHomography和cv2.warpPerspective来完成这项工作。一旦有了更好的透视图转换,就可以继续进行其余的转换

使用v2.findHomography和cv2.warpPerspective的代码示例可以找到:

https://www.learnopencv.com/homography-examples-using-opencv-python-c/

祝你好运

相关问题 更多 >