C++ 简历:imwrite“;“未定义”;使用OpenCV 3.2时
我在Ubuntu 64位上使用OpenCV 3.2.0,并编写了以下代码,我称之为WebImageIO.cppC++ 简历:imwrite“;“未定义”;使用OpenCV 3.2时,c++,opencv,C++,Opencv,我在Ubuntu 64位上使用OpenCV 3.2.0,并编写了以下代码,我称之为WebImageIO.cpp #include <iostream> #include <stdio.h> #include <stdlib.h> #include <string.h> #include "cv.h" #include "highgui.h" #include <opencv2/core.hpp> #include <
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "cv.h"
#include "highgui.h"
#include <opencv2/core.hpp>
#include <opencv2/highgui.hpp>
#include <opencv2/imgproc.hpp>
#include <opencv2/imgcodecs.hpp>
#include <opencv2/videoio.hpp>
#include <math.h>
#include <windows.h>
#include "Generic.h"
#include "Palette.h"
#include "CWebImageIO.h"
using namespace cv;
ERROR_NUMBER CWebImageIO::WriteColourImageToPNGFile(BytePlane bytePlane, BYTE *bpOutputImage,
TCHAR *outputFileName)
{
int iNumBands=3;
int row, col, inputInc, inc;
BytePlane bpBufferPlane;
// Make real colour output plane
bpBufferPlane=MakeBytePlane(bytePlane.iRows, iNumBands*bytePlane.iColumns, NULL);
if (!(bpBufferPlane.Data))
return ERROR_MEMORY_ALLOCATION;
// Fill buffer plane with test values
cv::Mat outputImage=cv::Mat(bytePlane.iRows, bytePlane.iColumns, CV_8UC3);
if (!(outputImage.data))
{
FreeBytePlane(bpBufferPlane);
return ERROR_MEMORY_ALLOCATION;
}
memcpy((void *)(outputImage.data), (void *)(bpOutputImage),
bytePlane.iRows*bytePlane.iColumns*3);
if (!(imwrite((char *)outputFileName, outputImage)))
{
free(bpOutputImage);
return ErrorWritingFile(outputFileName);
}
// Cleanup
FreeBytePlane(bpBufferPlane);
return ERROR_NONE;
}
我收到以下错误消息
/home/peter/NetBeansProjects/ApplyModelToSet/../../DraculaFiles/CWebImageIO.cpp:247: undefined reference to `cv::imwrite(cv::String const&, cv::_InputArray const&, std::vector<int, std::allocator<int> > const&)'
在系统上安装opencv 3.2后,不返回任何结果
编辑:
返回
/usr/lib/x86_64-linux-gnu/libopencv_calib3d.so -lopencv_calib3d /usr/lib/x86_64-linux-gnu/libopencv_contrib.so -lopencv_contrib /usr/lib/x86_64-linux-gnu/libopencv_core.so -lopencv_core /usr/lib/x86_64-linux-gnu/libopencv_features2d.so -lopencv_features2d /usr/lib/x86_64-linux-gnu/libopencv_flann.so -lopencv_flann /usr/lib/x86_64-linux-gnu/libopencv_gpu.so -lopencv_gpu /usr/lib/x86_64-linux-gnu/libopencv_highgui.so -lopencv_highgui /usr/lib/x86_64-linux-gnu/libopencv_imgproc.so -lopencv_imgproc /usr/lib/x86_64-linux-gnu/libopencv_legacy.so -lopencv_legacy /usr/lib/x86_64-linux-gnu/libopencv_ml.so -lopencv_ml /usr/lib/x86_64-linux-gnu/libopencv_objdetect.so -lopencv_objdetect /usr/lib/x86_64-linux-gnu/libopencv_ocl.so -lopencv_ocl /usr/lib/x86_64-linux-gnu/libopencv_photo.so -lopencv_photo /usr/lib/x86_64-linux-gnu/libopencv_stitching.so -lopencv_stitching /usr/lib/x86_64-linux-gnu/libopencv_superres.so -lopencv_superres /usr/lib/x86_64-linux-gnu/libopencv_ts.so -lopencv_ts /usr/lib/x86_64-linux-gnu/libopencv_video.so -lopencv_video /usr/lib/x86_64-linux-gnu/libopencv_videostab.so -lopencv_videostab
当您运行
find
命令时,我假设*imgcodecs*。
实际上是单引号?从命令行运行时,“pkg config opencv--libs”的输出是什么?谢谢您的回复。输出太长,无法发表评论,因此我将其作为编辑添加到问题中。谢谢
sudo find / -name '*imgcodecs*.so' -print
pkg-config opencv --libs
/usr/lib/x86_64-linux-gnu/libopencv_calib3d.so -lopencv_calib3d /usr/lib/x86_64-linux-gnu/libopencv_contrib.so -lopencv_contrib /usr/lib/x86_64-linux-gnu/libopencv_core.so -lopencv_core /usr/lib/x86_64-linux-gnu/libopencv_features2d.so -lopencv_features2d /usr/lib/x86_64-linux-gnu/libopencv_flann.so -lopencv_flann /usr/lib/x86_64-linux-gnu/libopencv_gpu.so -lopencv_gpu /usr/lib/x86_64-linux-gnu/libopencv_highgui.so -lopencv_highgui /usr/lib/x86_64-linux-gnu/libopencv_imgproc.so -lopencv_imgproc /usr/lib/x86_64-linux-gnu/libopencv_legacy.so -lopencv_legacy /usr/lib/x86_64-linux-gnu/libopencv_ml.so -lopencv_ml /usr/lib/x86_64-linux-gnu/libopencv_objdetect.so -lopencv_objdetect /usr/lib/x86_64-linux-gnu/libopencv_ocl.so -lopencv_ocl /usr/lib/x86_64-linux-gnu/libopencv_photo.so -lopencv_photo /usr/lib/x86_64-linux-gnu/libopencv_stitching.so -lopencv_stitching /usr/lib/x86_64-linux-gnu/libopencv_superres.so -lopencv_superres /usr/lib/x86_64-linux-gnu/libopencv_ts.so -lopencv_ts /usr/lib/x86_64-linux-gnu/libopencv_video.so -lopencv_video /usr/lib/x86_64-linux-gnu/libopencv_videostab.so -lopencv_videostab