cv::imwrite()
时间: 2024-04-30 21:18:03 浏览: 103
cv::imwrite()是OpenCV中的一个函数,用于将图像保存到文件中。它的语法如下:
```
bool cv::imwrite(const String& filename, InputArray img, const std::vector<int>& params=std::vector<int>())
```
其中,filename是保存文件的路径和文件名,img是要保存的图像,params是一个可选参数,用于指定保存图像的格式和压缩质量等信息。函数返回一个bool类型的值,表示保存是否成功。
例如,如果要将名为"image.jpg"的图像保存到当前目录下的"output.png"文件中,可以这样调用imwrite()函数:
```
cv::Mat image = cv::imread("image.jpg");
cv::imwrite("output.png", image);
```
这将把原始JPEG图像读入内存,然后将其保存为PNG格式的图像文件。
相关问题
C++ cv::imwrite返回值
C++函数`cv::imwrite`的返回值是一个布尔值,用于表示图像是否成功保存。保存成功,则返回`true`,否则返回`false`。如果返回`false`可以使用`cv::imwrite`函数提供的错误信息来确定错误的原因。例如,可以使用以下代码来检查`cv::imwrite`函数是否成功保存了图像:
```c++
if (!cv::imwrite("output.jpg", image)) {
std::cerr << "Failed to save the image!" << std::endl;
}
```
这将在控制台上输出错误消息,如果保存失败,则输出“Failed to save the image!”。
undefined reference to cv::imwrite
"undefined reference to cv::imwrite"错误通常意味着编译器无法找到OpenCV库的链接。要解决这个问题,您需要确保已正确链接OpenCV库。
如果您使用的是CMake进行编译,您需要在CMakeLists.txt文件中添加以下行:
```
find_package(OpenCV REQUIRED)
target_link_libraries(your_project_name ${OpenCV_LIBS})
```
这将使用CMake查找OpenCV库,并将其链接到您的项目中。请确保将“your_project_name”替换为您的项目名称。
如果您手动编写Makefile进行编译,则需要将OpenCV库链接到您的项目中。在编译命令中添加以下行:
```
g++ -o your_executable your_source_files -lopencv_core -lopencv_highgui -lopencv_imgcodecs
```
这将链接OpenCV库到您的可执行文件中。请确保将“your_executable”替换为您的可执行文件名称,将“your_source_files”替换为您的源代码文件名称。
阅读全文