小编MMH*_*MMH的帖子

openCV错误:断言失败(scn == 3 || scn == 4)

我在最后一帧时有Assertion失败错误,同时逐帧读取和写入视频.错误只显示在最后一帧,不知道为什么.在这里看到这个答案,这建议给waitkey,我的代码已经有等待键.

我的简单代码如下

int main()
{
  CvCapture *capture=cvCaptureFromFile("C:\\vid\\op.mp4");
  if(capture==NULL)
   {
 printf("can't open video");
   }
   Mat frame, first_frame,current_frame;
  char buffer[100];
  int frame_count=1,p=1;
  while(1)
   {
   /*Getting the current frame from the video*/
    frame=cvQueryFrame(capture);
    cv::cvtColor(frame,current_frame,1);   //saving current frame 
    sprintf(buffer,"C:\\frames\\image%u.jpg",p);    
    imwrite(buffer,current_frame);
    p++;

     waitKey(1);
   }
   return 0;
}  
Run Code Online (Sandbox Code Playgroud)

有人请帮忙

解决方案:我在读完每个文件后添加了一个检查 -

if(frame.empty()){
    fprinf("cannot access frame");
    return -1;
}
Run Code Online (Sandbox Code Playgroud)

c opencv video-capture

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

复制非矩形roi opencv

我想用C++ opencv复制一个非矩形图像的一部分.零件的角点在图像中是已知的.我想将它粘贴在精确位置的另一张图像中.有人可以帮帮我吗?

源图像和目标图像具有相同的大小.

这是一个源图像的例子,我知道p1,p2,p3,p4,我想将该部分复制到一个新图像.在此输入图像描述

我已经有了目的地形象.例如,下面的图像是目标图像,我想只将源图像的标记部分粘贴到目标图像.我该怎么做?在此输入图像描述

最终输出看起来应该是这样的.在此输入图像描述

谢谢,

c c++ opencv roi

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

OpenCV cv :: findHomography运行时错误

我用来编译和运行Features2D + Homography中的代码来找到一个已知的对象教程,我得到了这个

OpenCV Error: Assertion failed (npoints >= 0 && points2.checkVector(2) == npoint
s && points1.type() == points2.type()) in unknown function, file c:\Users\vp\wor
k\ocv\opencv\modules\calib3d\src\fundam.cpp, line 1062
Run Code Online (Sandbox Code Playgroud)

运行时错误.调试后我发现程序在findHomography函数崩溃了.

Unhandled exception at 0x760ab727 in OpenCVTemplateMatch.exe: Microsoft C++ exception: cv::Exception at memory location 0x0029eb3c..
Run Code Online (Sandbox Code Playgroud)

在OpenCV 的介绍中,"cv命名空间"一章说明了这一点

某些当前或未来的OpenCV外部名称可能与STL或其他库冲突.在这种情况下,使用显式名称空间说明符来解决名称冲突:

我改变了我的代码并使用了所有显式名称空间说明符,但问题没有解决.如果可以的话,请帮我解决这个问题,或者说找哪个函数和findHomography做同样的事情,不要崩溃程序.

这是我的代码

#include <stdio.h>
#include <iostream>
#include "opencv2/core/core.hpp"
#include "opencv2/features2d/features2d.hpp"
#include "opencv2/highgui/highgui.hpp"
#include "opencv2/calib3d/calib3d.hpp"

void readme();

/** @function main */
int main( int argc, char** argv )
{
    if( …
Run Code Online (Sandbox Code Playgroud)

c++ opencv object-detection homography

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

如何使用具有面部特征的openCV训练支持向量机(svm)分类器?

我想使用svm分类器进行面部表情检测.我知道opencv有一个svm api,但我不知道应该用什么来训练分类器.到目前为止,我已经阅读了很多论文,所有这些都是在面部特征检测后训练分类器时说的.

到目前为止我做了什么,

  1. 人脸检测,
  2. 每帧中16个面部点计算.下面是面部特征检测的输出![输入图像说明
  3. 保持特征的矢量指向像素地址这里

注意:我知道如何只用正片和负片训练SVM,我在这里看到了这段代码,但我不知道如何将面部特征信息与它结合起来.

有人可以帮我开始用svm进行分类.

一个.什么应该是训练分类器的样本输入?

湾 如何使用此面部特征点训练分类器?

问候,

c opencv svm face-detection feature-detection

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

访问char*的元素

我有一个char *p = "abcd",如何'a','b','c','d'只使用C(不是C++)访问元素?任何帮助,将不胜感激 .

c

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

如何补偿“自我运动”

我正在做一个项目,用光流检测移动相机中的移动物体。为了检测任何移动物体的真实运动,我需要补偿相机的自我运动。任何机构都可以提出一种简单的方法吗?我的项目使用 opencv c 和 c++。

opencv opticalflow

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

逐帧读取和显示视频文件

我正在与Matlab合作.我想读取一个视频文件并在每帧进行一些计算并显示每一帧.我写了下面的代码,但每次只显示第一帧.任何人都可以帮忙.

mov=VideoReader('c:\vid\Akiyo.mp4');
nFrames=mov.NumberOfFrames;
for i=1:nFrames
  videoFrame=read(mov,i);
  imshow(videoFrame);

end
Run Code Online (Sandbox Code Playgroud)

video matlab

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

共享库 libmwi18n.so 找不到

我在这里看到了一个类似的问题

阅读上述链接中的答案和评论后,我找到了“libmwi18n.so”文件并设置了LD_LIBRRY_PATH,但我仍然收到此错误:

'error while loading shared libraries: libmwi18n.so: cannot
 open shared object file: No such file or directory'
Run Code Online (Sandbox Code Playgroud)

我做了以下事情:

locate libmwil8n.so
Run Code Online (Sandbox Code Playgroud)

这给出了输出

/usr/local/MATLAB/R2012a/bin/glnx86/libmwi18n.so
Run Code Online (Sandbox Code Playgroud)

然后我做了

export LD_LIBRARY_PATH= /usr/local/MATLAB/R2012a/bin/glnx86
Run Code Online (Sandbox Code Playgroud)

并再次运行shell程序,

./run_app.sh
Run Code Online (Sandbox Code Playgroud)

返回相同的错误。

请帮助我,我该如何解决这个问题?

更新-

run_spp.sh 的内容

!/bin/sh
# script for execution of deployed applications
#
# Sets up the MCR environment for the current $ARCH and executes 
# the specified command.
#
exe_name=$0
exe_dir=`dirname "$0"`
echo "------------------------------------------"
if [ "x$1" = "x" ]; then
  echo Usage:
  echo    $0 …
Run Code Online (Sandbox Code Playgroud)

ubuntu matlab mcc

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