单击照片时检测纸上的多个黑点及其相对距离
Detect multiple black dots on paper and their relative distance while clicking photo
我希望多个用户对一张纸的照片进行拍照,该纸的四个边缘有四个点。当用户拍照时,为了确保纸张平整且没有皱折,我希望叠加的框架变为绿色,如果相机可以检测到已知相对距离的四个点,从而表示照片的纸张位置正确。
我对图像处理零知识。考虑到 iOS 和 Android.
的相机应用,让我知道是否有可能
首先你没有把问题说清楚,我还是尽量给你答案,你可以用你喜欢的语言,我假设框架里只有纸,背景应该要统一。
1) 设置图像阈值以仅检测纸张。
2) 一旦你有了纸的二值图像,你就可以提取它的轮廓信息。 (在opencv中使用contours = cv2.findContours(thresholdimage, cv2.RETR_EXTERNAL,cv2.CHAIN_APPROX_SIMPLE)
)
3) 获取轮廓的角点。 (在 opencv 中,您可以使用 cv2.approxPolyDP
并获取点列表)。
从这里你有多种选择,如果你想检查纸张对齐是否正确,使用点的位置。或者你可以找到它们之间的距离。
要检查矩形的对齐方式,您可以找到理想情况下应该垂直的点之间的 arctan
,您可以将其用作度量。
谢谢。
我希望多个用户对一张纸的照片进行拍照,该纸的四个边缘有四个点。当用户拍照时,为了确保纸张平整且没有皱折,我希望叠加的框架变为绿色,如果相机可以检测到已知相对距离的四个点,从而表示照片的纸张位置正确。
我对图像处理零知识。考虑到 iOS 和 Android.
的相机应用,让我知道是否有可能首先你没有把问题说清楚,我还是尽量给你答案,你可以用你喜欢的语言,我假设框架里只有纸,背景应该要统一。
1) 设置图像阈值以仅检测纸张。
2) 一旦你有了纸的二值图像,你就可以提取它的轮廓信息。 (在opencv中使用contours = cv2.findContours(thresholdimage, cv2.RETR_EXTERNAL,cv2.CHAIN_APPROX_SIMPLE)
)
3) 获取轮廓的角点。 (在 opencv 中,您可以使用 cv2.approxPolyDP
并获取点列表)。
从这里你有多种选择,如果你想检查纸张对齐是否正确,使用点的位置。或者你可以找到它们之间的距离。
要检查矩形的对齐方式,您可以找到理想情况下应该垂直的点之间的 arctan
,您可以将其用作度量。
谢谢。