草庐IT

opencv-features2d

全部标签

c++ - OpenCV - 使用 calcHist 混淆

我已经多次阅读calcHist()的文档,但我认为我对OpenCV的缺乏经验和生疏的编程技能完全使我无法理解它。我正在计算HSV图像(Hue或channel[0])的一个channel中的像素以用于分割目的,使用10个接近颜色的bin根据类似的东西(让我们以此为例,我偷了网络之外的范围-fwiw,省略紫红色似乎是错误的):红色:0-19和330-360红黄(RY):20-49黄色:50-69YG:70-84绿色:85-170国标:171-191蓝色:192-264英国石油公司:265-289紫色:290-329等等……那么我该如何使用calcHist做到这一点呢?我目前为止:#incl

c++ - 视差图的 OpenCv 深度估计

我正在尝试使用OpenCV从立体对图像估计深度。我有视差图和深度估计可以获得:(Baseline*focal)depth=------------------(disparity*SensorSize)我使用block匹配技术在两个校正后的图像中找到相同的点。OpenCV允许设置一些block匹配参数,例如BMState->numberOfDisparities。block匹配过程之后:cvFindStereoCorrespondenceBM(frame1r,frame2r,disp,BMState);cvConvertScale(disp,disp,16,0);cvNormalize

如何旋转两个对象,因此它们会在2D平面上彼此指向?

在初始图像上,您可以看到两个三角形指向向上。我必须旋转多少程度,因此它们会彼此指向?如何计算角度?计算点产物仅给出三角形之间的角度差,但它不是旋转的正确值。看答案您正在使用错误的向量的点产品。您应该用位移向量到另一个对象。这将使所需的角度旋转。但这仅仅是不够的-你怎么知道方向顺时针还是逆时针旋转?您可以使用跨产品:AxB=A.x*B.y-B.x*A.y如果此数量为负,则A相对于B,反之亦然。因此,如果cross(direction,displacement)为负,然后按计算角度顺时针旋转θ,反之亦然。

OPENCV-背景删除和对象检测

我需要检测物体(主要是人)与墙有关的位置。我可以在天花板上有一个固定的位置摄像头,所以我想获得一个空间的图像。然后使用该差异和当前的摄像头图像仅使用事物获取图像。然后,我可以进行斑点检测,我认为要获得位置(只需要X)。这听起来吗?我在OpenCV中不是很有成就,所以正在寻找一些建议。看答案这将是一种方法,但不是很健壮,因为视频提要不会产生一致的精确图像,因此背景永远不会被很好地减去,并且走过现场的人们会遮住光线,也可能匹配零件您的背景。从视频中删除背景的这个过程被简单地称为“背景减法”,并且有内置的OPENCV方法.OpenCV在其网站上有教程,显示了基础知识,Python和C++.

【macOS-OpenCV报错】ld: warning:ignoring file found architecture ‘x86_64‘, required architecture ‘arm64

如果之前用的mac是英特尔intel芯片的,然后换了macM1或M2芯片的。在使用OpenCV时会报错ld:warning:ignoringfile'/usr/local/Cellar/opencv/4.7.0_7/lib/libopencv_gapi.4.7.0.dylib':foundarchitecture'x86_64',requiredarchitecture'arm64'ld:warning:ignoringfile'/usr/local/Cellar/opencv/4.7.0_7/lib/libopencv_bgsegm.4.7.0.dylib':foundarchitectur

c++ - 标准化 2D/3D vector/坐标类

问题这件事困扰了我一段时间,但我找不到明确的答案:是否有人知道将标准2D和/或3Dvector(具有x、y和z成员的结构)引入STL的提案?如果没有,是否有一种现实的方法可以让这样的类进入下一版本的标准——而不是自己编写一个完整且完美的提案?并且,是否有任何充分的理由(除了没有人有时间)为什么还没有这样做?我绝对愿意做出贡献,但我相信我缺乏制作足够高质量的东西以被接受的经验(我不是专业程序员)。推理/背景到目前为止,我已经看到了几十个库和框架(无论是图形、物理、数学、导航、传感器融合……),它们基本上都实现了自己的版本structVector2d{doublex,y;//...};/*

c++ - 在 OpenCV C++ 中为 OCR 规范化车牌

我正在做一些简单的OCR车牌识别系统。我正在使用HaarCascades查找车牌,接下来我需要标准化此车牌,以将其放入我的OCR模块中。我正在使用floodfill找到车牌的主要轮廓,然后我执行Hough变换,找到车牌的上边界和下边界:这是我执行霍夫变换的部分代码^HoughLinesP(canny_img,lines,1,CV_PI/180,80,80,30);for(size_ti=0;i现在我需要沿着这两条线剪切和旋转这张图片。我怎样才能做到这一点?我知道我需要使用点Point(lines[i][0])..Point(linesi),但我应该用它们做什么?所以基本上,我需要得到类

c++ - openCV 错误 : Assertion failed (scn == 3 || scn == 4) on Raspberry Pi

我关注了thistutorialOpenCV对象跟踪并设法使代码在我的笔记本电脑上运行,无论是在使用VisualStudio的Windows上还是在我的UbuntuVM(使用CMake)上。现在我尝试在我的RaspberryPi(运行Raspbian)上运行它。cmake.和make命令似乎工作正常但是当我尝试运行可执行文件时出现以下错误:pi@raspberrypi~/Desktop/Track$./TrackObjinitdoneopenglsupportavailableOpenCVError:Assertionfailed((scn==3||scn==4)&&(depth==C

java - OpenCV - C++ 到 Java - 模板匹配

正如我在此处询问DetectMarkerPositionin2Dimage时,我正在尝试检测图像中的多个正方形(标记)有人向我展示了一个C++解决方案,这里是:#include#include#include//See:http://docs.opencv.org/doc/tutorials/imgproc/histograms/template_matching/template_matching.html//See:http://answers.opencv.org/question/60382/detect-markers-position-in-2d-images/intmai

c++ - OpenCV - 如何从 uint8_t 指针创建 Mat

我有以下C++代码:voidfoo(constuint8_t*data,intheight,intwidth){//needtocreateacv::Matfrom*data,whichisapointertograyscaleimagedata//doesn'tworkcorrectly(compiles,butarrayaccessonthematleadstoasegmentationfault)autoimg=cv::Mat(height,width,CV_8UC1,&data);//howcanIfixthelineabovetocreateapropercv::Mat?}/