gpt4 book ai didi

ios - 使用 OpenCV 从 UIImage 中检测图像对象

转载 作者:可可西里 更新时间:2023-11-01 05:25:46 25 4
gpt4 key购买 nike

我是 OpenCV 的新手,但在谷歌搜索期间我开始了解对象检测和边缘检测。但是,仍然无法找到从屏幕截图中检测图像的正确方法。

例如,如果我像下面这样传递一个内部有照片的图像,那么我需要从源图像中提取该照片。

enter image description here

编辑遵循@Amitay Nachmani 的回答后,我尝试将以下代码实现到第 4 步。

-(UIImage*)processImage:(UIImage*)sourceImage{

cv::Mat processMat;
UIImageToMat(sourceImage, processMat);

cv::Mat grayImage;
cvtColor(processMat, grayImage, CV_BGR2GRAY);

cv::Mat cannyImage;
cv::Canny(grayImage, cannyImage, 0, 50);


cv::Vec2f lines2;
std::vector<cv::Vec2f> lines;
cv::HoughLines(cannyImage, lines, 1, CV_PI/180, 300);

size_t sizeOfLine = lines.size();
for(size_t i=0;i<sizeOfLine;i++){
float rho = lines[i][0], theta = lines[i][1];

if(rho==0){
cv::Point pt1,pt2;
double a = cos(theta), b = sin(theta);
double x0 = a*rho, y0 = b*rho;
pt1.x = cvRound(x0 + 1000*(-b));
pt1.y = cvRound(y0 + 1000*(a));
pt2.x = cvRound(x0 - 1000*(-b));
pt2.y = cvRound(y0 - 1000*(a));

cv::line(cannyImage, pt1, pt2, cv::Scalar(255,0,0),2.0);
}
}

UIImage *result = MatToUIImage(cannyImage);
return result;
}

从上面的代码中,我生成了如下图像。 enter image description here

编辑 2我通过替换 Condition 修改了代码if(rho==0)if(theta==0)

这导致了下图 enter image description here

但是,接下来要做什么?我对接下来的步骤有点困惑。

最佳答案

我不完全确定,但是您尝试过模板匹配技术吗?如果您使用 C++ 编写 opencv: http://docs.opencv.org/2.4/doc/tutorials/imgproc/histograms/template_matching/template_matching.html

我希望这有助于找到模板(您的源图像)和您的测试图像(屏幕截图)之间的互相关。

在下面的链接中,您将找到有关如何应用和绘制模板匹配的完整示例。

希望这对您有所帮助。

干杯。

乌奈。

关于ios - 使用 OpenCV 从 UIImage 中检测图像对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39362819/

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