【005】ubuntu22.04使用opencv读取图片

本文介绍了如何使用OpenCV库在C++中读取test.jpg图片,并将其保存为out_put.png,同时展示了VSCode开发环境的配置,包括编译器路径和链接库等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、opencv读取图片测试示例

新建文件夹和cpp文件,以及准备一张测试图片:test.jpg,使用vscode时选择文件夹时只选择该项目的文件夹。
测试代码:

#include <opencv2/opencv.hpp>  
#include <iostream>
 
using namespace std;
using namespace cv;  //opencv的命名空间
 
int main(int argc, char** argv)
{
    Mat img;  //声明一个保存图像的类
    img = imread("test.jpg");  
    if (img.empty())  //判断图像文件是否存在
    {
        cout << "读取失败" << endl;
        return -1;
    }
 
    bool saved = imwrite("out_put.png", img);  //将读取的图片保存为test_save.jpg
    if (saved) {
        cout << img.rows << endl;
        cout << "保存图像成功" << endl;
    }
    return 0;  //程序结束
}

c_cpp_properties.json

{
  "configurations": [
    {
      "name": "linux-gcc-x64",
      "includePath": [
        "${workspaceFolder}/**"
      ],
      "compilerPath": "/usr/bin/gcc",
      "cStandard": "${default}",
      "cppStandard": "${default}",
      "intelliSenseMode": "linux-gcc-x64",
      "compilerArgs": [
        ""
      ]
    }
  ],
  "version": 4
}

launch.json

{
  "version": "0.2.0",
  "configurations": [
    {
      "name": "C/C++ Runner: Debug Session",
      "type": "cppdbg",
      "request": "launch",
      "args": [],
      "stopAtEntry": false,
      "externalConsole": false,
      "cwd": "${workspaceFolder}",
      "program": "${workspaceFolder}/${fileBasenameNoExtension}.o",
      "MIMode": "gdb",
      "miDebuggerPath": "gdb",
      "setupCommands": [
        {
          "description": "Enable pretty-printing for gdb",
          "text": "-enable-pretty-printing",
          "ignoreFailures": true
        }
      ]
    }
  ]
}

settings.json

{
  "C_Cpp_Runner.cCompilerPath": "gcc",
  "C_Cpp_Runner.cppCompilerPath": "g++",
  "C_Cpp_Runner.debuggerPath": "gdb",
  "C_Cpp_Runner.cStandard": "",
  "C_Cpp_Runner.cppStandard": "",
  "C_Cpp_Runner.msvcBatchPath": "",
  "C_Cpp_Runner.useMsvc": false,
  "C_Cpp_Runner.warnings": [
    "-Wall",
    "-Wextra",
    "-Wpedantic",
    "-Wshadow",
    "-Wformat=2",
    "-Wcast-align",
    "-Wconversion",
    "-Wsign-conversion",
    "-Wnull-dereference"
  ],
  "C_Cpp_Runner.msvcWarnings": [
    "/W4",
    "/permissive-",
    "/w14242",
    "/w14287",
    "/w14296",
    "/w14311",
    "/w14826",
    "/w44062",
    "/w44242",
    "/w14905",
    "/w14906",
    "/w14263",
    "/w44265",
    "/w14928"
  ],
  "C_Cpp_Runner.enableWarnings": true,
  "C_Cpp_Runner.warningsAsError": false,
  "C_Cpp_Runner.compilerArgs": [],
  "C_Cpp_Runner.linkerArgs": [],
  "C_Cpp_Runner.includePaths": [],
  "C_Cpp_Runner.includeSearch": [
    "*",
    "**/*"
  ],
  "C_Cpp_Runner.excludeSearch": [
    "**/build",
    "**/build/**",
    "**/.*",
    "**/.*/**",
    "**/.vscode",
    "**/.vscode/**"
  ],
  "C_Cpp_Runner.useAddressSanitizer": false,
  "C_Cpp_Runner.useUndefinedSanitizer": false,
  "C_Cpp_Runner.useLeakSanitizer": false,
  "C_Cpp_Runner.showCompilationTime": false,
  "C_Cpp_Runner.useLinkTimeOptimization": false,
  "C_Cpp_Runner.msvcSecureNoWarnings": false
}

tasks.json

{
    "tasks": [
        {
            "type": "cppbuild",
            "label": "C/C++: g++ build active file",
            "command": "/usr/bin/g++",
            "args": [
                "-g", "-std=c++11", "${file}", "-o", "${workspaceFolder}/${fileBasenameNoExtension}.o",// 设置动态链接库
            "-I", "/usr/local/include",
            "-I", "/usr/local/include/opencv",
            "-I", "/usr/local/include/opencv2",
            "-L", "/usr/local/lib",
            "-l", "opencv_core",
            "-l", "opencv_imgproc",
            "-l", "opencv_imgcodecs",
            "-l", "opencv_video",
            "-l", "opencv_ml",
            "-l", "opencv_highgui",
            "-l", "opencv_objdetect",
            "-l", "opencv_flann",
            "-l", "opencv_imgcodecs",
            "-l", "opencv_photo",
            "-l", "opencv_videoio"
            ],
            "options": {
                "cwd": "${fileDirname}"
            },
            "problemMatcher": [
                "$gcc"
            ],
            "group": {
                "kind": "build",
                "isDefault": true
            },
            "detail": "Task generated by Debugger."
        }
    ],
    "version": "2.0.0"
}

需要注意的是:
launch.json 里的 "program": "${workspaceFolder}/${fileBasenameNoExtension}.o" 需要与 tasks.json 中的

 "args": ["-g", "-std=c++11", "${file}", "-o", "${workspaceFolder}/${fileBasenameNoExtension}.o"

保持一致,不然会有报错。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值