使用openCv和c保存图像

时间:2017-06-26 09:19:44

标签: c opencv

我正在尝试加载图像,然后将其转换为灰度,然后保存。我使用C而不是C ++,所以我不能像所有其他帖子一样使用Mat(是的我全部阅读,所以不要打扰我)。

我看到我应该在函数imwrite中使用它来获取2个参数:名称和IplImage。

这是我的代码:

#include <stdio.h>
#include <string.h>
#include <opencv2\core\core_c.h>
#include <opencv2\highgui\highgui_c.h>

int main(void)
{
    IplImage* im_gray = cvLoadImage("pic.png", CV_LOAD_IMAGE_GRAYSCALE);
    imwrite("outputGray.jpg", im_gray);
}

我收到此错误

Error 1 error LNK1120: 1 unresolved externals

我做错了什么?

1 个答案:

答案 0 :(得分:2)

imwriteC++版本,您必须使用具有以下签名的cvSaveImage

int cvSaveImage(const char* filename, const CvArr* image, const int* params=0 )

第一个参数是文件名,第二个是图像,第一个是选项。

您的代码将是这样的:

#include <stdio.h>
#include <string.h>
#include <opencv2\core\core_c.h>
#include <opencv2\highgui\highgui_c.h>

int main(void)
{
    IplImage* im_gray = cvLoadImage("pic.png", CV_LOAD_IMAGE_GRAYSCALE);
    cvSaveImage("outputGray.jpg", im_gray);
}