我正在尝试加载图像,然后将其转换为灰度,然后保存。我使用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
我做错了什么?
答案 0 :(得分:2)
imwrite
是C++
版本,您必须使用具有以下签名的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);
}