gpt4 book ai didi

opencv - 使用 OpenCV 检测图像中二次形状的最佳和最快方法?

转载 作者:太空宇宙 更新时间:2023-11-03 21:45:48 30 4
gpt4 key购买 nike

最近几天我在寻找在图像中找到二次形状的好用和快速的方法。

例如,看看附加的图像。

我想找到白屏部分的边缘(在这种情况下是电视屏幕)。

我可以用我想要的任何东西替换白色 Canvas ,例如QR 码、一些纹理等 - 只是寻找那个形状的坐标。

形状的其他特征:

  • 应该只检测一个形状。
  • 应使用透视变换。

Source: Google.com

语言不是那么重要,但我想为此使用 OpenCV。

最佳答案

这些是已经在 OpenCV 中实现的很好的算法:

作为 GoodFeatureToTrackDetector 的 Harris 角点检测器

GoodFeaturesToTrackDetector harris_detector (1000, 0.01, 10, 3, true);
vector<KeyPoint> keypoints;
cvtColor (image, gray_image, CV_BGR2GRAY);
harris_detector.detect (gray_image, keypoints);

作为 FeatureDetector::create("FAST")FASTX

的快速角点检测器
Ptr<FeatureDetector> feature_detector = FeatureDetector::create("FAST");
vector<KeyPoint> keypoints;
cvtColor (image, gray_image, CV_BGR2GRAY);
feature_detector->detect (gray_image, keypoints);

或者

FASTX (gray_image, keypoints, 50, true, FastFeatureDetector::TYPE_9_16);

SIFT(尺度不变特征变换)作为 FeatureDetector::create("SIFT")

Ptr<FeatureDetector> feature_detector = FeatureDetector::create("SIFT");
vector<KeyPoint> keypoints;
cvtColor (image, gray_image, CV_BGR2GRAY);
feature_detector->detect (gray_image, keypoints);

Update透视变换(haned前必须知道的4点):

Point2f source [4], destination [4];
// Assign values to source and destination points.
perspective_matrix = getPerspectiveTransform( source, destination );
warpPerspective( image, result, perspective_matrix, result.size() );

关于opencv - 使用 OpenCV 检测图像中二次形状的最佳和最快方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30153227/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com