我正在尝试加载图像,然后将其转换为灰度,然后保存它。我使用的是 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
我做错了什么?
最佳答案
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);
}
关于c - 使用 openCv 和 c 保存图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44756483/