小编Rui*_*ues的帖子

用于ANDROID图像比较的OpenCV

我想开发应用程序,它将识别出现在相机前面的对象(如纪念碑或其他东西)OpenCv,然后它将显示有关它的信息.

所以问题是如何识别对象(如纪念碑或其他东西)的形状或与图像进行比较OpenCV
这样做的最佳方法是什么?

如果存在用于对象检测和比较的某种样本或教程,那将是很好的.

谢谢.

android opencv image-processing computer-vision object-recognition

7
推荐指数
1
解决办法
1万
查看次数

Android中的扩张和侵蚀

根据我的研究,扩散和侵蚀可用于在图像二值化之后桥接图像的间隙.

我不确定是否cvSmooth需要使用.

java android opencv image-processing computer-vision

7
推荐指数
1
解决办法
1万
查看次数

运行测试时禁用 cypress 文件夹的生成

我正在尝试使用 Cypress 进行一系列单元测试。这是运行它们的 npm 脚本:

cypress run --project tests/unit/ --headless

当我运行它们时,它会生成典型的插件/支持/视频文件夹,但我不需要它们。运行测试时是否有任何标志禁止生成这 3 个文件夹?

谢谢!

testing unit-testing cypress

7
推荐指数
1
解决办法
4140
查看次数

完全关闭自动曝光补偿?

我正在编写一个相机应用程序,无论环境光线如何,都需要相同的曝光.不幸的是,setExposureCompensation()只是像偏移一样.我可以关闭此自动调整,还是更多的用户硬件修正?

android android-camera

6
推荐指数
1
解决办法
8405
查看次数

cv :: goodFeaturesToTrack不会返回任何功能

我正在尝试使用cv::calcOpticalFlowPyrLK但有时在该函数中的内部断言失败.断言是npoints = prevPtsMat.checkVector(2, CV_32F, true)) >= 0.我正在使用OpenCV 2.3.1.此功能的源代码可在此处获得.

很难绕过他们的代码,特别是因为我对计算机图形学的经验有限以及缺乏评论.为什么这个断言被触发,它对我的​​问题说了些什么?

编辑:我调用该函数如下:

cv::calcOpticalFlowPyrLK(curBwFrame, prvFrame, features, newFeatures, trackingStatus, errors);
Run Code Online (Sandbox Code Playgroud)

我发现features通过cv::goodFeaturesToTrack(curBwFrame, features, 5, 0.2, 0.5, skinMask);使用看似足够大且非常有效的图像的非空掩码调用而获得的向量不包含任何特征.怎么会发生这种情况?

curBwFrame

curBwFrame

skinMask

skinMask

我可以使用以下代码片段重现该问题:

#include <vector>
#include <cassert>
#include <opencv2\opencv.hpp>
using std::vector;
using namespace cv;

int main() {
    vector<Point2f> features;
    cv::Mat curBwFrame = imread("curBwFrame.png");
    cv::cvtColor(curBwFrame, curBwFrame, CV_RGB2GRAY);
    imwrite("test.png", curBwFrame);

    cv::Mat skinMask = imread("skinMask.png");
    cv::cvtColor(skinMask, skinMask, CV_RGB2GRAY);
    imwrite("test.png", skinMask);

    cv::goodFeaturesToTrack(curBwFrame, features, 5, 0.2, 0.5, skinMask);
    assert(features.size() > 0);

    return …
Run Code Online (Sandbox Code Playgroud)

c++ opencv opticalflow computer-vision

5
推荐指数
1
解决办法
1万
查看次数

OpenCV C++使用cv :: Moments

我尝试使用OpenCV C++的cv :: Moments找到质心.无论我提交什么论点,我收到的全部都是零.显然,我做了一件非常错误的事情.输出代码:

23 of 500 elements in unit 3
point values 2.976444 18.248287
matrix size 23
moments 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
moments 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
Run Code Online (Sandbox Code Playgroud)

和代码:

printf("%d of %d elements in unit %d\n",k,number_of_features,i);
cv::Mat x(k, 1, cv::DataType<cv::Point2f>::type);
k=0;
for(int j=0;j <number_of_features;j++) {
    if(i  == labels.at<int>(j)) {
        x.at<cv::Point2f>(k++) = samples.at<cv::Point2f>(i); 
    }
}
printf("point values %f %f\n", x.at<cv::Point2f>(0).x,x.at<cv::Point2f>(0).y);
cv::Size s=x.size();
printf("matrix size %d\n",s.height);
cv::Moments m=cv::moments(x);
printf("moments %f %f %f %f %f %f …
Run Code Online (Sandbox Code Playgroud)

c++ opencv image-processing

5
推荐指数
1
解决办法
1万
查看次数

多视图几何

我从相同距离的两个相机拍摄的两张图像相距一定距离,拍摄同一个场景.我想计算两个相机之间的真实世界旋转和平移.为了实现这一点,我首先提取了两个图像的SIFT特征并进行匹配.

我现在有基本矩阵单应矩阵.但是无法继续进行,很多混乱.任何人都可以帮我估算两台相机之间的旋转和平移吗?

我正在使用OpenCV进行特征提取和匹配,单应性计算.

opencv multiview computer-vision projective-geometry

5
推荐指数
1
解决办法
1610
查看次数

添加水印小图像到大图像opencv4android

我一直在尝试将图像添加到所需位置的大图像.我找到了一种通过addWeighted(src,alpha,water, - ,dst, - )在opencv中添加水印的方法,但问题是水印和表面图像应该是我不想要的相同尺寸.

发现另一种方式(我猜)

Mat srcMat = cvCanvasImage.submat(top/2, (top + height)/2, left/2, (left + width)/2);
Imgproc.cvtColor(mat, srcMat, Imgproc.COLOR_GRAY2BGR,4);
Run Code Online (Sandbox Code Playgroud)

但我不明白怎么做?

谢谢..

UPDATE

     Mat cvCanvasImage = Highgui.imread(Environment.getExternalStorageDirectory() + "/wallpapers/castle.jpg");

 // Small watermark image
Mat cvWaterImage = Highgui.imread(Environment.getExternalStorageDirectory() +"/square.png");

Size canvasSize = cvWaterImage.size();

   int rows = (int) canvasSize.height;
   int cols = (int) canvasSize.width;       
   int left = 0;
   int top = 0;         
   int width = rows;
   int height = cols;

   Rect ROI = new Rect(left, top, width, height);
   Core.addWeighted(cvCanvasImage.submat(ROI), alpha, cvWaterImage, beta, …
Run Code Online (Sandbox Code Playgroud)

android opencv watermark image image-processing

5
推荐指数
1
解决办法
4645
查看次数

openCV过滤器图像 - 用本地最大值替换内核

关于我的问题的一些细节:

我正在尝试在openCV中实现角点检测器(另一种算法,内置:Canny,Harris等).

我有一个填充响应值的矩阵.最大的响应值是 - 检测到角点的最大概率是.

我有一个问题,即在一个点附近检测到的角很少(但只有一个).我需要减少错误检测到的角落数量.

确切的问题:

我需要使用内核遍历矩阵,计算每个内核的最大值,保留最大值,但内核中的其他值等于零.

是否有内置的openCV函数来执行此操作?

c++ opencv image-processing max filter

4
推荐指数
1
解决办法
8293
查看次数

如何将 OpenCV Keypoint 特征保存到数据库?

我的项目是使用 OpenCV 库识别 Android 上的叶子。我使用ORB检测来获取图像的关键点并使用ORB描述符来获取关键点的特征。这是我使用的代码:

bmp=BitmapFactory.decodeResource(getResources(),R.drawable.t1);
Utils.bitmapToMat(bmp, mat);
FeatureDetector detector = FeatureDetector.create(FeatureDetector.ORB);
detector.detect(mat, keypoints);
DescriptorExtractor extractor = DescriptorExtractor.create(DescriptorExtractor.ORB);
extractor.compute(mat, keypoints, features);
Run Code Online (Sandbox Code Playgroud)

来源:http : //answers.opencv.org/question/6260/orb-features/

但是每次我输入相同的图像,该图像的关键点总是不同的。如果总是不同,我可以将关键点的特征保存到数据库吗?或者我应该保存图像以保存特征数据?如果可以保存到数据库,我该怎么做??

android opencv feature-extraction orb

4
推荐指数
1
解决办法
6605
查看次数

OpenCv 有版本号常量吗?

我问这个问题是因为我安装了几个并且怀疑我是否加载了正确的动态库。

这个问题与这些问题略有不同,因为它们回答的是安装的内容,而不是您的应用程序链接的内容:

查找 Ubuntu 上安装的 OpenCV 版本

如何检查 openCV

c++ opencv shared-libraries

4
推荐指数
1
解决办法
1552
查看次数

使用另一个图像作为虚拟相机

如何在Genymotion虚拟设备上使用其他图像(而不是Genymotion徽标)?我想在各种类型的图像上测试我的应用程序.

android genymotion

1
推荐指数
1
解决办法
1023
查看次数