ubuntu 下运行opencv程序

已经按照在ubuntu下配置好opencv环境,而且可以编译运行程序,
但是我现在写一个cpp代码中需要识别二维码,就是导入zbar包。
之前在Windows下就好做,现在就不知道怎么配置链接库。新手学习,请有经验的指点下。
最好是文件夹下的配置说明一下。非常感谢。
下面就是运行缺少这个头文件,包。
图片说明

3个回答

引入单个头文件,写好绝对路径,或者把头文件放到目录下。如果引入库,静态链接库或者动态的,就需要考虑文件的引入方式,可以看看Makefile文件。

图片opencv安装好了吗,自己先写一个c++测试代码,看能不能读入图像,我看你的
图片是要用C#?而且编译还没通过啊

wen96001
Major_Tom_F 安装好了,可以读取图像。c++测试代码也行。我就是不太懂怎么配置这个zbar包。还请赐教
2 年多之前 回复

县搜索下zbar.h,看在哪个目录。
然后打开findqr.cpp文件,在include里根据这个文件和zbar.h的相对路径关系修改下。或者把前者放在和后者同一个路径下
再include "zbar.h"

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
ubuntu用opencv运行摄像头程序出错

IDE是qt,代码在windows下正常运行,但是在ubuntu下只能运行一次,关闭在运行调试时出现以下错误,如图!怎么解决啊!!![图片说明](https://img-ask.csdn.net/upload/201607/18/1468831075_970059.png)

Ubuntu下使用opencv打开摄像头出现“已放弃(核心已转储)”

在Ubuntu 16.04 系统下使用opencv-3.2.0打开摄像头,运行可执行程序后出现如下错误: OpenCV Error: Assertion failed (total() == 0 || data != NULL) in Mat, file /home/thunder/code/opencv-3.2.0/modules/core/include/opencv2/core/mat.inl.hpp, line 431 terminate called after throwing an instance of 'cv::Exception' what(): /home/thunder/code/opencv-3.2.0/modules/core/include/opencv2/core/mat.inl.hpp:431: error: (-215) total() == 0 || data != NULL in function Mat 已放弃 (核心已转储) 求助各位大神这是什么地方的问题,不胜感激! ![图片说明](https://img-ask.csdn.net/upload/201711/16/1510829093_261624.png)

ubuntu12.04下 opencv库交叉编译后 动态库找不到

ubuntu上我装了pc 和arm 两个版本的opencv2.4.9 目录分别是/usr/local/opencv2.4.9 和/opt/opencv2.4.9-for-arm pc版本的库文件都在/usr/local/lib下 arm版本库文件在/opt/opencv2.4.9-for-arm/lib下 whereis libopencv___core 的时候,只列出的/usr/local/lib/libopencv_core.so 交叉编译器在/opt/Embedsky/gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12/tq-linaro-toolchain/bin下 我写一个opencv测试程序test.cpp 交叉编译出现警告 ``` # arm-linux-g++ -o test test.cpp -I /opt/opencv2.4.9-for-arm/lib/include -L /opt/opencv2.4.9-for-arm/lib -lopencv_core -lopencv_highgui -lpthread -lrt In file included from /opt/opencv2.4.9-for-arm/lib/include/opencv2/flann/kmeans_index.h:50:0, from /opt/opencv2.4.9-for-arm/lib/include/opencv2/flann/all_indices.h:38, from /opt/opencv2.4.9-for-arm/lib/include/opencv2/flann/flann_base.hpp:44, from /opt/opencv2.4.9-for-arm/lib/include/opencv2/flann/flann.hpp:50, from /opt/opencv2.4.9-for-arm/lib/include/opencv/cv.h:69, from test.cpp:2: /opt/opencv2.4.9-for-arm/lib/include/opencv2/flann/logger.h:73:9: note: the mangling of 'va_list' has changed in GCC 4.4 /opt/Embedsky/gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12/tq-linaro-toolchain/bin/../lib/gcc/arm-fsl-linux-gnueabi/4.6.2/../../../../arm-fsl-linux-gnueabi/bin/ld: warning: ../../lib/libopencv_core.so, needed by /opt/opencv2.4.9-for-arm/lib/libopencv_highgui.so, not found (try using -rpath or -rpath-link) /opt/Embedsky/gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12/tq-linaro-toolchain/bin/../lib/gcc/arm-fsl-linux-gnueabi/4.6.2/../../../../arm-fsl-linux-gnueabi/bin/ld: warning: ../../lib/libopencv_imgproc.so, needed by /opt/opencv2.4.9-for-arm/lib/libopencv_highgui.so, not found (try using -rpath or -rpath-link) root@tsie-All-Series:/home/tsie/nfs/test/opencv_test# whereis libopencv_core libopencv_core: /usr/local/lib/libopencv_core.so ``` 这里面好像用到交叉编译器的ld,找opencv的.so文件看提示是跑到交叉编译器所在文件夹里面的lib去找?? 我也吧opencv的交叉库放到这个文件夹里面,再编译还是同样的问题 然后我尝试加上运行时库路径参数 -Wl,-rpath,/opt/opencv2.4.9-for-arm/lib,再编译,弹出来一样的信息。 然后,就没有然后了。我晕 这究竟谁什么问题啊 求各路大神给点思路

用QTWasm工具编译QT+OpenCV程序出现错误?

我用QTWasm可以编译QT程序的,今天尝试编译QT+OpenCV程序遇到错误, 这个程序在QT上是可以运行的,只是编译时出错,路径目录也是存在的,百度了很久也找不到相关的解决方法,请大佬们帮忙看看! ``` shared:ERROR: G:QT+OpenCVopencvbuildx64vc15libopencv_world347d.lib: No such file or directory ("G:QT+OpenCVopencvbuildx64vc15libopencv_world347d.lib" was expected to be an input file, based on the commandline arguments provided) mingw32-make: *** [Makefile:73: OpenCVTest.js] Error 1 ``` 有资料说是生成.js文件时\转义符会小时,尝试在.pro文件的路径上多加一个\,编译时还是相同的问题![图片说明](https://img-ask.csdn.net/upload/202003/08/1583647851_44205.png)

qtcreator 运行程序时可以构建通过,但总是程序异常结束

大神们,能帮我看看是哪的问题吗?最近在帮老师做项目,完不成的话会挨批的,然而qtcreator一直有问题啊啊啊,所以我很着急,希望大家能多多帮忙,谢谢大家了~~~!!!!新手没有钱,希望大家还是帮忙看看,好人会有福报的~~ qtcreator+MSVC2013+opencv2.4.9 构建时没有错误,但构建完成后程序总会异常结束,截图如下:![图片说明](https://img-ask.csdn.net/upload/201508/09/1439111989_302326.png) 我的.pro中的代码段如下: QT += core gui greaterThan(QT_MAJOR_VERSION, 4): QT += widgets TARGET = practice TEMPLATE = app SOURCES += main.cpp\ mainwindow.cpp HEADERS += mainwindow.h FORMS += mainwindow.ui INCLUDEPATH+=.\ D:/opencv-2.4.9/build/include/opencv2\ D:/opencv-2.4.9/build/include/opencv\ D:/opencv-2.4.9/build/include CONFIG(release,debug|release) { LIBS+=D:/opencv-2.4.9/build/x64/vc12/lib/opencv_calib3d249.lib\ D:/opencv-2.4.9/build/x64/vc12/lib/opencv_contrib249.lib D:/opencv-2.4.9/build/x64/vc12/lib/opencv_core249.lib D:/opencv-2.4.9/build/x64/vc12/lib/opencv_features2d249.lib D:/opencv-2.4.9/build/x64/vc12/lib/opencv_flann249.lib D:/opencv-2.4.9/build/x64/vc12/lib/opencv_gpu249.lib D:/opencv-2.4.9/build/x64/vc12/lib/opencv_highgui249.lib D:/opencv-2.4.9/build/x64/vc12/lib/opencv_imgproc249.lib D:/opencv-2.4.9/build/x64/vc12/lib/opencv_legacy249.lib D:/opencv-2.4.9/build/x64/vc12/lib/opencv_ml249.lib D:/opencv-2.4.9/build/x64/vc12/lib/opencv_objdetect249.lib D:/opencv-2.4.9/build/x64/vc12/lib/opencv_ts249.lib D:/opencv-2.4.9/build/x64/vc12/lib/opencv_video249.lib } CONFIG(debug,debug|release) { LIBS+=D:/opencv-2.4.9/build/x64/vc12/lib/opencv_calib3d249d.lib\ D:/opencv-2.4.9/build/x64/vc12/lib/opencv_contrib249d.lib\ D:/opencv-2.4.9/build/x64/vc12/lib/opencv_core249d.lib\ D:/opencv-2.4.9/build/x64/vc12/lib/opencv_features2d249d.lib\ D:/opencv-2.4.9/build/x64/vc12/lib/opencv_flann249d.lib\ D:/opencv-2.4.9/build/x64/vc12/lib/opencv_gpu249d.lib\ D:/opencv-2.4.9/build/x64/vc12/lib/opencv_highgui249d.lib\ D:/opencv-2.4.9/build/x64/vc12/lib/opencv_imgproc249d.lib\ D:/opencv-2.4.9/build/x64/vc12/lib/opencv_legacy249d.lib\ D:/opencv-2.4.9/build/x64/vc12/lib/opencv_ml249d.lib\ D:/opencv-2.4.9/build/x64/vc12/lib/opencv_objdetect249d.lib\ D:/opencv-2.4.9/build/x64/vc12/lib/opencv_ts249d.lib\ D:/opencv-2.4.9/build/x64/vc12/lib/opencv_*d.lib\ D:/opencv-2.4.9/build/x64/vc12/lib/opencv_video249d.lib } mainwindow.cpp如下: #include "mainwindow.h" #include "ui_mainwindow.h" #include "opencv2/opencv.hpp" #include <opencv2/core/core.hpp> #include <opencv2/imgproc/imgproc.hpp> #include <opencv2/highgui/highgui.hpp> #include <opencv2/features2d/features2d.hpp> #include <opencv2/nonfree/nonfree.hpp> using namespace cv; MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); Mat image=imread("church01.jpg"); } MainWindow::~MainWindow() { delete ui; } 只是在默认的情况下加了一个读程序的代码行Mat image=imread("church01.jpg");而已 如果把这一行去掉的话,则显示的mainwindow界面是这样的,我感觉有些异常: ![图片说明](https://img-ask.csdn.net/upload/201508/09/1439112313_545386.png) 关闭mainwindow窗口后,应用输出显示: C:\Users\lolo\Desktop\build-practice-Desktop_Qt_5_5_0_MSVC2013_64bit-Debug\debug\practice.exe exited with code 0 然后我就不知道这是怎么回事了,我是基于VS2013的qtcreator,我没有对qtcreator构建和运行那进行配置,都是默认的,如下: ![图片说明](https://img-ask.csdn.net/upload/201508/09/1439112586_128883.png) 大神们,能帮我看看是哪的问题吗?最近在帮老师做项目,完不成的话会挨批的,所以我很着急,希望大家能多多帮忙,谢谢大家了~~~!!!!

ubuntu下qtcreator工程中利用opencv编写工程,摄像头无法第二次打开

ubuntu下qtcreator工程中利用opencv编写工程,opencv库操作,摄像头第一次可以 正常使用,一旦点击停止键后,无法第二次打开,再次运行时就会报错。 libv4l2: error turning on stream: Invalid argument cap 在析构函数中我有作释放。请问这是什么原因啊?? ~~~~~~~~~~~~~~~~ VideoCapture cap; cap.open(camId); // open the default camera if(!cap.isOpened()) // check if we succeeded { return false; } cap.release(); 图片说明![图片说明](https://img-ask.csdn.net/upload/201506/29/1435541831_96278.jpg) 我点击上面的 x 可以关闭程序,切可以二次打开,并且仅析构执行。。但是如果我点击stopping debug 就会出现我描述的无法二次打开,是不是这种强行关闭 无法进析构函数释放资源啊。谁能帮忙解释下或给点意见。。 主函数 int main(int argc, char *argv[]) { QApplication a(argc, argv); MainWindow w; //================kint============== w.configure_file = argv[1]; w.camera_ID = atoi(argv[2]); // w.init(argv[1], 1); //================kint============== w.show(); return a.exec(); } 析构函数 MainWindow::~MainWindow() { delete ui; delete pCam_qr_estimation; }

vs2010+opencv编写的文本识别程序交叉编译时遇到问题

最近刚接触mini2440,想把自己写的识别字母和数字的程序运行到mini2440开发板上, 于是在PC机上运用opencv和vs2010写了识别程序,现在的问题是不能将之在开发板上运行。 目前了解的信息是需要进行交叉编译生成可执行文件,然后通过调试器下载到目标开发板上。 开发板上已经移植了opencv,但是在UBUNTU上进行交叉编译时程序能编译通过,但运行出错。 我识别程序是用c语言写的,不知道可以能够实现将程序交叉编译成功并下载到mini2440开发板上嘛?

KCF算法的Multi-scale c++版本运行

KCF算法的Multi-scale c++版本如何运行?在ubuntu14.04下,提示:KCF: /home/KCFcpp/src/kcftracker.cpp:164: virtual void KCFTracker::init(const Rect&, cv::Mat): Assertion `roi.width >= 0 && roi.height >= 0' failed.

linux下qt中opencv打开摄像头HIGHGUI ERROR:OpenCV Error:

我在Ubuntu下用qt结合opencv做一个人眼状态识别的程序,qt做界面,程序在vs控制台环境下已经可以运行,但是qt下出错。错误信息 如下: HIGHGUI ERROR: V4L/V4L2: VIDIOC_S_CROP OpenCV Error: Assertion failed (scn == 3 || scn == 4) in cvtColor, file /home/mkc/opencv/opencvinstallor/opencv-2.4.9/modules/imgproc/src/color.cpp, line 3737 Qt has caught an exception thrown from an event handler. Throwing exceptions from an event handler is not supported in Qt. You must reimplement QApplication::notify() and catch all exceptions there. 1. 我的程序思路是用opencv打开摄像头并捕捉每一帧,做完处理,最后在qt的label上显示,其间做了一个mat到QImage的转换, 2.用opencv官方程序圈出人脸。我单纯的将这一步写进qt运行没问题,能将摄像头显示在label上,但是将自己完整的一直到人眼状态识别代码写进去就报错。 3.中间用了opencv新版的Mat格式,也用了IplImage的图像格式,在Ubuntu下单纯编译也没错,但是到了qt下就闪退。 4.我百度得到的可能性是:如果有空帧的话,cvtColor会报错,后来我将 if( !frame.empty() )写在打开摄像头后还是报错。 我自己根本不太懂opencv和qt,所以一直没解决,会不会是是mat还有IplImage、QImage三种格式之间转换出了问题。 希望各位遇见过的各位能给与帮助,不甚感激。

OpenCV程序中通过imread()读入图像,发生段错误(Segmentation fault)

程序如下: // ImageDis.cpp #include < opencv2/opencv.hpp> using namespace std; using namespace cv; int main(int argc, char* argv[]) { const char* imagename = "kitty.jpg"; //从文件中读入图像 Mat img = imread(imagename); //如果读入图像失败 if(img.empty()) { fprintf(stderr, "Can not load image %s\n", imagename); return -1; } //显示图像 imshow("image", img); //此函数等待按键,按键盘任意键就返回 waitKey(); return 0; } 编译命令如下: g++ -g -o ImageD.exe ImageDis.cpp -I C:\MinGW\include -L C:\MinGW\lib -llibopencv_core341 -llibopencv_highgui341 -llibopencv_imgproc341 -llibopencv_imgcodecs341 运行ImageD.exe发生Appcrach。 用gdb调试: Breakpoint 1, main (argc=1, argv=0x538890) at ImageD.cpp:13 13 Mat img = imread(imagename); 执行line 13时,发生下列错误退出。 Program received signal SIGSEGV, Segmentation fault. 0x6fed4333 in libstdc++-6!_ZNSt6localeaSERKS_ () from C:\MinGW\bin\libstdc++-6.dll

QtCreator5.3.1使用opencv显示图像,**crash

首先,在windows7系统里,成功安装了QtCreator5.3.1与opencv2.4.9,且通过cmake编译,搭建QtCreator与opencv环境。 代码如下 ①xxx.pro #------------------------------------------------- # # Project created by QtCreator 2017-11-09T10:20:23 # #------------------------------------------------- QT += core gui greaterThan(QT_MAJOR_VERSION, 4): QT += widgets TARGET = exam1 TEMPLATE = app SOURCES += main.cpp\ mainwindow.cpp HEADERS += mainwindow.h FORMS += mainwindow.ui INCLUDEPATH += D:\opencv\build\include \ D:\opencv\build\include\opencv \ D:\opencv\build\include\opencv2 \ INCLUDEPATH += $$PWD/../../../opencv/MinGw/include DEPENDPATH += $$PWD/../../../opencv/MinGw/include LIBS += -L$$PWD/../../../opencv/MinGw/lib/ LIBS += -llibopencv_contrib249 \ -llibopencv_calib3d249 \ -llibopencv_core249 \ -llibopencv_features2d249 \ -llibopencv_flann249 \ -llibopencv_gpu249 \ -llibopencv_highgui249 \ -llibopencv_imgproc249 \ -llibopencv_legacy249 \ -llibopencv_video249 \ -llibopencv_objdetect249 \ ②主程序 #include "mainwindow.h" #include <QApplication> #include <QDebug> int main(int argc, char *argv[]) { QApplication a(argc, argv); MainWindow w; w.show(); return a.exec(); } ③#include "mainwindow.h" #include "ui_mainwindow.h" MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { // ui->setupUi(this); cvNamedWindow("screen",1); while(1); IplImage *img = cvLoadImage("D:\\Qt\\example\\icon\\screen.jpg"); cvShowImage("screen",img); while(1){ if( 27 == cvWaitKey(0) ) break; } cvReleaseImage(&img); cvDestroyWindow("screen"); } MainWindow::~MainWindow() { delete ui; } 运行结果: Starting D:\Qt\example\build-exam1-Desktop_Qt_5_3_MinGW_32bit-Release\release\exam1.exe... 程序异常结束。 D:\Qt\example\build-exam1-Desktop_Qt_5_3_MinGW_32bit-Release\release\exam1.exe crashed 注:图片路径正确,能够正确使用。求大神帮忙!!!

运行基于qt的opencv程序时提示安装libgt2.0-dev

OpenCV Error: Unspecified error (The function is not implemented. Rebuild the library with Windows, GTK+ 2.x or Carbon support. If you are on Ubuntu or Debian, install libgtk2.0-dev and pkg-config, then re-run cmake or configure script) in cvNamedWindow, file /work/tools/OpenCV-2.3.1/modules/highgui/src/window.cpp, line 275 terminate called after throwing an instance of 'cv::Exception' what(): /work/tools/OpenCV-2.3.1/modules/highgui/src/window.cpp:275: error: (-2) The function is not implemented. Rebuild the library with Windows, GTK+ 2.x or Carbon support. If you are on Ubuntu or Debian, install libgtk2.0-dev and pkg-config, then re-run cmake or configure script in function cvNamedWindow 可是我这是用qmake编译出来的可执行文件啊,为什么还要安装gtk?另外我安装了pkg-config,qte的移植经测试也是正确的

opencv+Qt,不显示图片

如图,如果注释掉IplImage 指针之后的代码,则test_image.exe exited with code 0; 如果不注释掉,总会出现test_image.exe exited with code -1073741515,请问是哪方面的原因,是编译opencv不到位,还是什么![![![图片说明](https://img-ask.csdn.net/upload/201604/13/1460516180_550253.png)图片说明](https://img-ask.csdn.net/upload/201604/13/1460516177_353329.png)图片说明](https://img-ask.csdn.net/upload/201604/13/1460516169_654040.png)![图片说明](https://img-ask.csdn.net/upload/201604/13/1460516201_221418.png)

关于如何将Python程序交叉编译至Arm运行的问题

背景:Ubuntu-Linux操作系统,使用Python和PyQt5编写了一款界面软件,利用Pyinstaller打包至Arm-Linux操作系统运行,但是报错:不能执行二进制文件。 问题:由于开发环境是x86的cpu,运行环境的arm的cpu,则移植时需要交叉编译。请问如何将x86系统上开发的软件移植过去呢?如何进行交叉编译呢? (网上有人说将Python和用到的第三方库全部在Arm-Linux上进行交叉编译,这就相当于在Arm-Linux上建立了一个开发环境了,请问有没有方法在x86系统上将软件交叉编译好,复制到Arm-Linux系统上即可直接运行?)

opencv debug可以 release报错

opencv配置正确。debug没有问题。release下提示在倒数5,6行使用了未初始化的b1,b2(是注释掉的两行,b1,b2在main函数下第三行声明),代码生成失败。想问问是什么原因。我把这两行注释掉了,程序可以运行,但是不delete好么,会不会有什么弊端。以下是代码。 ``` #include<cv.h> #include<highgui.h> #include<stdio.h> #include<stdlib.h> #include<math.h> #include<cxcore.h> //#define N 500 #define E 3.3554//本文用基于T分布的变化监测 int main() { int i,j,k,dif[3][9],n=1,m,c[8][2]={{0,1},{-1,1},{-1,0},{-1,-1},{0,-1},{1,-1},{1,0},{1,1}},e[8]={1,0,1,0,1,0,1,0}; char *a1,*a2,*a3,**b1,**b2,**b3; float s[3],f[3],t[3],sum[240][960]; IplImage*fram,*pimg1,*pimg2,*pimg3; //读视频 printf("稍微等一会儿\n"); CvCapture *capture; capture=cvCreateFileCapture("C:\\Users\\luxu\\Documents\\Visual Studio 2013\\Projects\\Project4\\Debug\\video1.avi");//为了方便将测试视频重命名为test.avi fram=cvQueryFrame(capture); cvSaveImage("test1.bmp",fram); pimg1=cvLoadImage("test1.bmp",1); //创建一个同规格的图像用来存储背景图像 CvSize size=cvSize(pimg1->width,pimg1->height); pimg3=cvCreateImage(size,pimg1->depth,3); a3=pimg3->imageData; b3=new char*[pimg3->height]; for(i=0;i<pimg3->height;i++) b3[i]=&a3[i*pimg3->widthStep]; int **count; count=new int*[240]; for(i=0;i<240;i++) count[i]=new int[320]; //初始化 //printf("1"); for(i=0;i<240;i++) for(j=0;j<320;j++) count[i][j]=0; //printf("1\n"); for(i=0;i<240;i++) for(j=0;j<960;j++) sum[i][j]=0; //printf("1\n"); while(n<200)//取前100帧图像用于重建背景 {//一维数组变二维 b1=new char*[pimg1->height]; a1=pimg1->imageData; for(i=0;i<pimg1->height;i++) b1[i]=&a1[i*pimg1->widthStep]; fram=cvQueryFrame(capture); if(!fram) break; cvSaveImage("test2.bmp",fram); pimg2=cvLoadImage("test2.bmp",1); b2=new char*[pimg2->height]; a2=pimg2->imageData; for(i=0;i<pimg2->height;i++) b2[i]=&a2[i*pimg2->widthStep]; for(i=0;i<3;i++) { s[i]=0; f[i]=0; } //printf("正常1\n"); for(i=1;i<pimg1->height-1;i++) { for(j=1;j<pimg1->width-1;j++) { for(k=0;k<8;k++) { //选取领域的窗口为3*3对每一个像素点进行T分布变换监测 dif[0][k]=unsigned char(b2[i+c[k][0]][3*(j+c[k][1])])-unsigned char(b1[i+c[k][0]][3*(j+c[k][1])]); dif[1][k]=unsigned char(b2[i+c[k][0]][3*(j+c[k][1])+1])-unsigned char(b1[i+c[k][0]][3*(j+c[k][1])+1]); dif[2][k]=unsigned char(b2[i+c[k][0]][3*(j+c[k][1])+2])-unsigned char(b1[i+c[k][0]][3*(j+c[k][1])+2]); f[0]+=dif[0][k]; f[1]+=dif[1][k]; f[2]+=dif[2][k]; } dif[0][8]=unsigned char(b2[i][3*j])-unsigned char(b1[i][3*j]); dif[1][8]=unsigned char(b2[i][3*j+1])-unsigned char(b1[i][3*j+1]); dif[2][8]=unsigned char(b2[i][3*j+2])-unsigned char(b1[i][3*j+2]); f[0]+=dif[0][8]; f[1]+=dif[1][8]; f[2]+=dif[2][8]; f[0]/=9; f[1]/=9; f[2]/=9; for(k=0;k<9;k++) { s[0]+=(dif[0][k]-f[0])*(dif[0][k]-f[0]); s[1]+=(dif[1][k]-f[1])*(dif[1][k]-f[1]); s[2]+=(dif[2][k]-f[2])*(dif[2][k]-f[2]); } s[0]/=8; s[1]/=8; s[2]/=8; s[0]=sqrt(s[0]);s[1]=sqrt(s[1]);s[2]=sqrt(s[2]); //计算t t[0]=(3*f[0]/s[0]); t[1]=(3*f[1]/s[1]); t[2]=(3*f[2]/s[2]); if(fabs(t[0])<E&&fabs(t[1])<E&&fabs(t[2])<E)//这里的E是当α=0.001自由度为8时差T分布表所得的置信区间 { sum[i][3*j]+=(unsigned char)b2[i][3*j]; sum[i][3*j+1]+=(unsigned char)b2[i][3*j+1]; sum[i][3*j+2]+=(unsigned char)b2[i][3*j+2]; count[i][j]+=1; } } } cvReleaseImage(&pimg1); pimg1=cvLoadImage("test2.bmp",1); cvReleaseImage(&pimg2); n++; //printf("%d\n",n); } //printf("%d\n",b1[8][22]); for(i=1;i<pimg1->height-1;i++) { for(j=1;j<pimg1->width-1;j++) { m=count[i][j]; //printf("%d %d\n",m,j); //m=100; //计算背景图像的像素值 if(m!=0) { b3[i][3*j]=sum[i][3*j]/m; b3[i][3*j+1]=sum[i][3*j+1]/m; b3[i][3*j+2]=sum[i][3*j+2]/m; //if(i==2) //printf("%f %f %f\n",sum[i][3*j],sum[i][3*j+1],sum[i][3*j+2]); //printf("%d %d %d %d\n",b3[i][3*j],b3[i][3*j+1],b3[i][3*j+2],j); } } //printf("%d\n",i); } cvSaveImage("backgroud1.bmp",pimg3); //cvSaveImage("test1.bmp",pimg1); cvReleaseImage(&pimg1); cvReleaseImage(&pimg3); //delete []b1; //delete []b2; for(i=0;i<240;i++) delete []count[i]; delete []count; return 0; } ```

matlab调用c++程序mex文件问题

我在使用matlab时想利用opencv中的lsd直线检测算法输出检测到的直线起点和终点坐标报错![图片说明](https://img-ask.csdn.net/upload/201710/23/1508722929_34297.png)如图所示,我按图中路径根本找不到文件,求大神解答

opencvsharp配置环境,安装opencv的问题

问题比较简单,但是也没查到明确的答案,希望得到帮助! 问题: 1.想用opencvsharp实现opencv.dnn。通过nuget实现,这个过程需要安装opencv吗? 我的实际操作是安装了opencv4.2,配置了环境变量,nuget导入的也是opencvsharp4.2,但是编译时提示异常:找不到模块'OpenCvSharpExtern' 。不能确定是哪个环节出了问题。 2.如果生成了程序后在别的电脑上想运行,也需要在别的电脑上安装opencv吗?还是只需要拷贝相关dll就可以了,如果是拷贝dll 需要拷贝那些文件。 目前还没做到这一步,但也没搜到相关信息,想知道运行时的需求。 最后是感谢,谢谢你抽出时间看我发的问题,如果能提供指导真的是万分感谢

ORBSLAM2在ros-kinetic错误

最近学习ORB SLAM ,按照github 指南,成功编译运行单目/立体/rgbd在数据集上到运行程序; 具体见https://github.com/raulmur/ORB_SLAM2; _但是按照github指南结合ros运行orbslam时出现错误。具体情况如下: --------------- ORB-SLAM2 Copyright (C) 2014-2016 Raul Mur-Artal, University of Zaragoza. This program comes with ABSOLUTELY NO WARRANTY; This is free software, and you are welcome to redistribute it under certain conditions. See LICENSE.txt. Input sensor was set to: Stereo Loading ORB Vocabulary. This could take a while... Vocabulary loaded! OpenCV Error: Bad argument (Invalid pointer to file storage) in cvGetFileNodeByName, file /tmp/binarydeb/ros-kinetic-opencv3-3.1.0/modules/core/src/persistence.cpp, line 709 terminate called after throwing an instance of 'cv::Exception' what(): /tmp/binarydeb/ros-kinetic-opencv3-3.1.0/modules/core/src/persistence.cpp:709: error: (-5) Invalid pointer to file storage in function cvGetFileNodeByName -------以上是报错内容 我用到是ubuntu 16.04,只能安装ros最新的kinetic; 根据报错内容,查到如下问题: 1.kinetic 默认用opencv 3;而我安装的是opencv2,似乎orbslam中也用的是opencv2,因此调用ros时出现版本兼容问题; 2. 查找响应解决方案,包括更改makelist和更改cvbridge,但是无果,个人觉得还有其他步骤;具体见 http://blog.csdn.net/gauxonz/article/details/52842099 ; 和http://wiki.ros.org/opencv3 ; 3. 所以个人感觉如果将ros-kinetic中默认的opencv3换成opencv2即可;由于刚接触ubuntu和ros,求各位帮忙指点啦! 提前感谢!

小白,想用Python3.7+Opencv4.1.1+APP:IP摄像头,调用手机的摄像头。 结果出现如下状况,还请各位大佬指点!

小白,想用Python3.7+Opencv4.1.1+APP:IP摄像头,调用手机的摄像头。 结果出现如下状况,还请各位大佬指点! ``` import cv2 url = 'http://192.168.0.101:8081/' cap = cv2.VideoCapture(url) while (1): ret, frame = cap.read() cv2.imshow('', cap.read()) if cv2.waitKey(1) & 0xFF == ord('q'): break cap.release() cv2.destroyAllWindows() ``` 我修改了一下,代码成这样了 ``` import cv2 url = 'http://192.168.0.101:8081' cap = cv2.VideoCapture(url) while cap.isOpened(): ret, frame = cap.read() cv2.imshow('frame', frame) if cv2.waitKey(1) & 0xFF == ord('q'): break cap.release() cv2.destroyAllWindows() ``` 运行并没有反应,我感觉直接没有进while,也就是说摄像头根本没数据流,请问各位大佬怎么改呢?

在中国程序员是青春饭吗?

今年,我也32了 ,为了不给大家误导,咨询了猎头、圈内好友,以及年过35岁的几位老程序员……舍了老脸去揭人家伤疤……希望能给大家以帮助,记得帮我点赞哦。 目录: 你以为的人生 一次又一次的伤害 猎头界的真相 如何应对互联网行业的「中年危机」 一、你以为的人生 刚入行时,拿着傲人的工资,想着好好干,以为我们的人生是这样的: 等真到了那一天,你会发现,你的人生很可能是这样的: ...

程序员请照顾好自己,周末病魔差点一套带走我。

程序员在一个周末的时间,得了重病,差点当场去世,还好及时挽救回来了。

和黑客斗争的 6 天!

互联网公司工作,很难避免不和黑客们打交道,我呆过的两家互联网公司,几乎每月每天每分钟都有黑客在公司网站上扫描。有的是寻找 Sql 注入的缺口,有的是寻找线上服务器可能存在的漏洞,大部分都...

点沙成金:英特尔芯片制造全过程揭密

“亚马逊丛林里的蝴蝶扇动几下翅膀就可能引起两周后美国德州的一次飓风……” 这句人人皆知的话最初用来描述非线性系统中微小参数的变化所引起的系统极大变化。 而在更长的时间尺度内,我们所生活的这个世界就是这样一个异常复杂的非线性系统…… 水泥、穹顶、透视——关于时间与技艺的蝴蝶效应 公元前3000年,古埃及人将尼罗河中挖出的泥浆与纳特龙盐湖中的矿物盐混合,再掺入煅烧石灰石制成的石灰,由此得来了人...

上班一个月,后悔当初着急入职的选择了

最近有个老铁,告诉我说,上班一个月,后悔当初着急入职现在公司了。他之前在美图做手机研发,今年美图那边今年也有一波组织优化调整,他是其中一个,在协商离职后,当时捉急找工作上班,因为有房贷供着,不能没有收入来源。所以匆忙选了一家公司,实际上是一个大型外包公司,主要派遣给其他手机厂商做外包项目。**当时承诺待遇还不错,所以就立马入职去上班了。但是后面入职后,发现薪酬待遇这块并不是HR所说那样,那个HR自...

女程序员,为什么比男程序员少???

昨天看到一档综艺节目,讨论了两个话题:(1)中国学生的数学成绩,平均下来看,会比国外好?为什么?(2)男生的数学成绩,平均下来看,会比女生好?为什么?同时,我又联想到了一个技术圈经常讨...

副业收入是我做程序媛的3倍,工作外的B面人生是怎样的?

提到“程序员”,多数人脑海里首先想到的大约是:为人木讷、薪水超高、工作枯燥…… 然而,当离开工作岗位,撕去层层标签,脱下“程序员”这身外套,有的人生动又有趣,马上展现出了完全不同的A/B面人生! 不论是简单的爱好,还是正经的副业,他们都干得同样出色。偶尔,还能和程序员的特质结合,产生奇妙的“化学反应”。 @Charlotte:平日素颜示人,周末美妆博主 大家都以为程序媛也个个不修边幅,但我们也许...

如果你是老板,你会不会踢了这样的员工?

有个好朋友ZS,是技术总监,昨天问我:“有一个老下属,跟了我很多年,做事勤勤恳恳,主动性也很好。但随着公司的发展,他的进步速度,跟不上团队的步伐了,有点...

我入职阿里后,才知道原来简历这么写

私下里,有不少读者问我:“二哥,如何才能写出一份专业的技术简历呢?我总感觉自己写的简历太烂了,所以投了无数份,都石沉大海了。”说实话,我自己好多年没有写过简历了,但我认识的一个同行,他在阿里,给我说了一些他当年写简历的方法论,我感觉太牛逼了,实在是忍不住,就分享了出来,希望能够帮助到你。 01、简历的本质 作为简历的撰写者,你必须要搞清楚一点,简历的本质是什么,它就是为了来销售你的价值主张的。往深...

外包程序员的幸福生活

今天给你们讲述一个外包程序员的幸福生活。男主是Z哥,不是在外包公司上班的那种,是一名自由职业者,接外包项目自己干。接下来讲的都是真人真事。 先给大家介绍一下男主,Z哥,老程序员,是我十多年前的老同事,技术大牛,当过CTO,也创过业。因为我俩都爱好喝酒、踢球,再加上住的距离不算远,所以一直也断断续续的联系着,我对Z哥的状况也有大概了解。 Z哥几年前创业失败,后来他开始干起了外包,利用自己的技术能...

C++11:一些微小的变化(新的数据类型、template表达式内的空格、nullptr、std::nullptr_t)

本文介绍一些C++的两个新特性,它们虽然微小,但对你的编程十分重要 一、Template表达式内的空格 C++11标准之前建议在“在两个template表达式的闭符之间放一个空格”的要求已经过时了 例如: vector&lt;list&lt;int&gt; &gt;; //C++11之前 vector&lt;list&lt;int&gt;&gt;; //C++11 二、nullptr ...

优雅的替换if-else语句

场景 日常开发,if-else语句写的不少吧??当逻辑分支非常多的时候,if-else套了一层又一层,虽然业务功能倒是实现了,但是看起来是真的很不优雅,尤其是对于我这种有强迫症的程序"猿",看到这么多if-else,脑袋瓜子就嗡嗡的,总想着解锁新姿势:干掉过多的if-else!!!本文将介绍三板斧手段: 优先判断条件,条件不满足的,逻辑及时中断返回; 采用策略模式+工厂模式; 结合注解,锦...

深入剖析Springboot启动原理的底层源码,再也不怕面试官问了!

大家现在应该都对Springboot很熟悉,但是你对他的启动原理了解吗?

离职半年了,老东家又发 offer,回不回?

有小伙伴问松哥这个问题,他在上海某公司,在离职了几个月后,前公司的领导联系到他,希望他能够返聘回去,他很纠结要不要回去? 俗话说好马不吃回头草,但是这个小伙伴既然感到纠结了,我觉得至少说明了两个问题:1.曾经的公司还不错;2.现在的日子也不是很如意。否则应该就不会纠结了。 老实说,松哥之前也有过类似的经历,今天就来和小伙伴们聊聊回头草到底吃不吃。 首先一个基本观点,就是离职了也没必要和老东家弄的苦...

为什么你不想学习?只想玩?人是如何一步一步废掉的

不知道是不是只有我这样子,还是你们也有过类似的经历。 上学的时候总有很多光辉历史,学年名列前茅,或者单科目大佬,但是虽然慢慢地长大了,你开始懈怠了,开始废掉了。。。 什么?你说不知道具体的情况是怎么样的? 我来告诉你: 你常常潜意识里或者心理觉得,自己真正的生活或者奋斗还没有开始。总是幻想着自己还拥有大把时间,还有无限的可能,自己还能逆风翻盘,只不是自己还没开始罢了,自己以后肯定会变得特别厉害...

为什么程序员做外包会被瞧不起?

二哥,有个事想询问下您的意见,您觉得应届生值得去外包吗?公司虽然挺大的,中xx,但待遇感觉挺低,马上要报到,挺纠结的。

当HR压你价,说你只值7K,你该怎么回答?

当HR压你价,说你只值7K时,你可以流畅地回答,记住,是流畅,不能犹豫。 礼貌地说:“7K是吗?了解了。嗯~其实我对贵司的面试官印象很好。只不过,现在我的手头上已经有一份11K的offer。来面试,主要也是自己对贵司挺有兴趣的,所以过来看看……”(未完) 这段话主要是陪HR互诈的同时,从公司兴趣,公司职员印象上,都给予对方正面的肯定,既能提升HR的好感度,又能让谈判气氛融洽,为后面的发挥留足空间。...

面试:第十六章:Java中级开发(16k)

HashMap底层实现原理,红黑树,B+树,B树的结构原理 Spring的AOP和IOC是什么?它们常见的使用场景有哪些?Spring事务,事务的属性,传播行为,数据库隔离级别 Spring和SpringMVC,MyBatis以及SpringBoot的注解分别有哪些?SpringMVC的工作原理,SpringBoot框架的优点,MyBatis框架的优点 SpringCould组件有哪些,他们...

面试阿里p7,被按在地上摩擦,鬼知道我经历了什么?

面试阿里p7被问到的问题(当时我只知道第一个):@Conditional是做什么的?@Conditional多个条件是什么逻辑关系?条件判断在什么时候执...

面试了一个 31 岁程序员,让我有所触动,30岁以上的程序员该何去何从?

最近面试了一个31岁8年经验的程序猿,让我有点感慨,大龄程序猿该何去何从。

【阿里P6面经】二本,curd两年,疯狂复习,拿下阿里offer

二本的读者,在老东家不断学习,最后逆袭

大三实习生,字节跳动面经分享,已拿Offer

说实话,自己的算法,我一个不会,太难了吧

程序员垃圾简历长什么样?

已经连续五年参加大厂校招、社招的技术面试工作,简历看的不下于万份 这篇文章会用实例告诉你,什么是差的程序员简历! 疫情快要结束了,各个公司也都开始春招了,作为即将红遍大江南北的新晋UP主,那当然要为小伙伴们做点事(手动狗头)。 就在公众号里公开征简历,义务帮大家看,并一一点评。《启舰:春招在即,义务帮大家看看简历吧》 一石激起千层浪,三天收到两百多封简历。 花光了两个星期的所有空闲时...

《经典算法案例》01-08:如何使用质数设计扫雷(Minesweeper)游戏

我们都玩过Windows操作系统中的经典游戏扫雷(Minesweeper),如果把质数当作一颗雷,那么,表格中红色的数字哪些是雷(质数)?您能找出多少个呢?文中用列表的方式罗列了10000以内的自然数、质数(素数),6的倍数等,方便大家观察质数的分布规律及特性,以便对算法求解有指导意义。另外,判断质数是初学算法,理解算法重要性的一个非常好的案例。

《Oracle Java SE编程自学与面试指南》最佳学习路线图(2020最新版)

正确选择比瞎努力更重要!

面试官:你连SSO都不懂,就别来面试了

大厂竟然要考我SSO,卧槽。

微软为一人收购一公司?破解索尼程序、写黑客小说,看他彪悍的程序人生!...

作者 | 伍杏玲出品 | CSDN(ID:CSDNnews)格子衬衫、常掉发、双肩包、修电脑、加班多……这些似乎成了大众给程序员的固定标签。近几年流行的“跨界风”开始刷新人们对程序员的...

终于,月薪过5万了!

来看几个问题想不想月薪超过5万?想不想进入公司架构组?想不想成为项目组的负责人?想不想成为spring的高手,超越99%的对手?那么本文内容是你必须要掌握的。本文主要详解bean的生命...

我说我懂多线程,面试官立马给我发了offer

不小心拿了几个offer,有点烦

自从喜欢上了B站这12个UP主,我越来越觉得自己是个废柴了!

不怕告诉你,我自从喜欢上了这12个UP主,哔哩哔哩成为了我手机上最耗电的软件,几乎每天都会看,可是吧,看的越多,我就越觉得自己是个废柴,唉,老天不公啊,不信你看看…… 间接性踌躇满志,持续性混吃等死,都是因为你们……但是,自己的学习力在慢慢变强,这是不容忽视的,推荐给你们! 都说B站是个宝,可是有人不会挖啊,没事,今天咱挖好的送你一箩筐,首先啊,我在B站上最喜欢看这个家伙的视频了,为啥 ,咱撇...

立即提问
相关内容推荐