草庐IT

opencv_traincascade

全部标签

c++ - OpenCV - 未定义的引用 : SurfFeatureDetector and BruteForceMatcher

我正在用C++编写一个程序,它使用2张图像来检测SURF特征,使用bruteforcematcher计算匹配并绘制它。这是代码#include#include#include#include"opencv/cv.h"#include"opencv/highgui.h"#include"opencv2/features2d/features2d.hpp"usingnamespacecv;usingnamespacestd;intmain(intargc,char**argv){if(argckeypoints1,keypoints2;detector.detect(source1,key

c++ - 直方图均衡不适用于彩色图像 - OpenCV

我正在尝试使用以下函数使用OpenCV执行直方图均衡MatHistogram::Equalization(constMat&inputImage){if(inputImage.channels()>=3){vectorchannels;split(inputImage,channels);MatB,G,R;equalizeHist(channels[0],B);equalizeHist(channels[1],G);equalizeHist(channels[2],R);vectorcombined;combined.push_back(B);combined.push_back(G)

c++ - 直方图均衡不适用于彩色图像 - OpenCV

我正在尝试使用以下函数使用OpenCV执行直方图均衡MatHistogram::Equalization(constMat&inputImage){if(inputImage.channels()>=3){vectorchannels;split(inputImage,channels);MatB,G,R;equalizeHist(channels[0],B);equalizeHist(channels[1],G);equalizeHist(channels[2],R);vectorcombined;combined.push_back(B);combined.push_back(G)

c++ - 如何在 OpenCV 中对图像应用蒙版?

我想将二进制蒙版应用于彩色图像。请提供一个基本的代码示例,并正确解释代码的工作原理。另外,是否有一些选项可以永久应用掩码,以便所有功能仅在掩码内运行? 最佳答案 虽然@perrejba的回答是正确的,但它使用了遗留的C风格函数。由于问题标记为C++,您可能希望使用一种方法:inputMat.copyTo(outputMat,maskMat);所有对象的类型都是cv::Mat。请注意,屏蔽是二进制的。掩码中的任何非零值都被解释为“复制”。即使蒙版是灰度图像。还要注意.copyTo()函数在复制之前不会清除输出。如果您想永久更改原始图像

c++ - 如何在 OpenCV 中对图像应用蒙版?

我想将二进制蒙版应用于彩色图像。请提供一个基本的代码示例,并正确解释代码的工作原理。另外,是否有一些选项可以永久应用掩码,以便所有功能仅在掩码内运行? 最佳答案 虽然@perrejba的回答是正确的,但它使用了遗留的C风格函数。由于问题标记为C++,您可能希望使用一种方法:inputMat.copyTo(outputMat,maskMat);所有对象的类型都是cv::Mat。请注意,屏蔽是二进制的。掩码中的任何非零值都被解释为“复制”。即使蒙版是灰度图像。还要注意.copyTo()函数在复制之前不会清除输出。如果您想永久更改原始图像

c++ - OpenCV - 使用 SURF 描述符和 BruteForceMatcher 进行对象匹配

我有一个关于与OpenCV匹配的对象的问题。我正在使用opencv2.3中实现的SURF算法首先检测每个图像上的特征,然后提取这些特征的描述符。使用BruteForceMatcher匹配的问题,我不知道我如何判断两个图像是否匹配,就像我使用两个不同的图像时,两个图像中的描述符之间有线条!我的代码的这些输出,无论是两个图像-我与它们进行比较-相似或不同,结果图像表明这两个图像匹配。问题是:如何区分两张图片?真匹配:错误匹配!!:我的代码:Matimage1,outImg1,image2,outImg2;//vectorofkeypointsvectorkeypoints1,keypoin

c++ - OpenCV - 使用 SURF 描述符和 BruteForceMatcher 进行对象匹配

我有一个关于与OpenCV匹配的对象的问题。我正在使用opencv2.3中实现的SURF算法首先检测每个图像上的特征,然后提取这些特征的描述符。使用BruteForceMatcher匹配的问题,我不知道我如何判断两个图像是否匹配,就像我使用两个不同的图像时,两个图像中的描述符之间有线条!我的代码的这些输出,无论是两个图像-我与它们进行比较-相似或不同,结果图像表明这两个图像匹配。问题是:如何区分两张图片?真匹配:错误匹配!!:我的代码:Matimage1,outImg1,image2,outImg2;//vectorofkeypointsvectorkeypoints1,keypoin

c++ - OpenCV:查找二进制 Mat 图像的所有非零坐标

我正在尝试查找二进制图像的非零(x,y)坐标。我发现了一些对函数countNonZero()的引用,它只计算非零坐标和findNonZero()我不确定如何访问或使用,因为它似乎已从文档中完全删除。This是我找到的最接近的引用,但仍然没有帮助。如果有任何具体帮助,我将不胜感激。编辑:-指定,这是使用C++ 最佳答案 Here解释了findNonZero()如何保存非零元素。以下代码对于访问二进制图像的非零坐标应该很有用。方法1在OpenCV中使用findNonZero(),方法2检查每个像素以找到非零(正)像素。方法一:#incl

c++ - OpenCV:查找二进制 Mat 图像的所有非零坐标

我正在尝试查找二进制图像的非零(x,y)坐标。我发现了一些对函数countNonZero()的引用,它只计算非零坐标和findNonZero()我不确定如何访问或使用,因为它似乎已从文档中完全删除。This是我找到的最接近的引用,但仍然没有帮助。如果有任何具体帮助,我将不胜感激。编辑:-指定,这是使用C++ 最佳答案 Here解释了findNonZero()如何保存非零元素。以下代码对于访问二进制图像的非零坐标应该很有用。方法1在OpenCV中使用findNonZero(),方法2检查每个像素以找到非零(正)像素。方法一:#incl

c++ - OpenCV中矩阵中的元素总和?

我需要对矩阵中的所有元素求和。我使用了函数sum(sum(A));在matlab中。其中A是一个大小为300*360的矩阵。我想在OpenCV中实现相同的功能。我用过这样的东西。doubles=cv::sum(cv::sum(A));但显示无法将标量转换为double的错误。如何解决这个问题? 最佳答案 与Matlab不同,在opencv中,cv::sum(A)沿所有维度求和并返回一个等于Matlab的sum(sum(A))的数字(标量).所以,你需要的是doubles=cv::sum(A)[0];