C++ cmake--opencv 示例(图像读取、保存、显示、获取宽高)

ubuntu 安装OpenCV:

sudo apt install libopencv-dev

文件结构:ce.cpp、CMakeLists.txt、./media/cat.jpg

在这里插入图片描述

CMakeLists.txt 内容:

#6.build_together/CMakeLists.txt`

# 最低版本要求
cmake_minimum_required(VERSION 3.10)

# 项目信息
project(demo_opencv)

# 查找opencv库
find_package(OpenCV REQUIRED)

# 给自己写个提示 也方便查找报错原因
if (openCV_FOUND)
    # 找到后打印一些信息
    message(STATUS "openCV library status:")
    message(STATUS "       version: ${OpenCV_VERSION}")           # 版本
    message(STATUS "       libraries: ${OpenCV_INCLUDE_DIRS}")    # 库名称
    message(STATUS "       include path: ${OpenCV_INCLUDE_DIRS}") # 库的路径
else()
    # 找不到
    message(STATUS "openCV library status:")
endif()

# 添加可执行文件
add_executable(open_domo "./ce.cpp")

# 添加头文件
target_include_directories(open_domo PRIVATE ${OpenCV_INCLUDE_DIRS})

# 添加链接
target_link_libraries(open_domo PRIVATE ${OpenCV_LIBS})

ce.cpp 内容:

#include <iostream>
#include <opencv2/opencv.hpp>


int main(int argc, char **argv)
{   
    // 若 输入参数数量不为2 则断定输入参数错误
    if (argc != 2)
    {
        return 1;
    }
    // 使用imread函数读取图片,和Python用法类似
    // 读取的数据保存在Mat类型的变量image中,Mat是opencv中的图像数据结构,类似numpy中的ndarray
    // cv::Mat image = cv::imread("./media/cat.jpg");  // 在终端输入命令: ./build/open_domo ./media/cat.jpg
    // cv::Mat image = cv::imread("./media/cat.jpg", 0);  // 0代表 直接加载灰度图
    cv::Mat image = cv::imread(argv[1]);

    // 判断图像是否读取成功,返回true表示失败
    if (image.empty())  // 使用!image.data也可以判断
        {
        std::cout << "无法读取图片"  << std::endl;
        return 1;
        }

    std::cout << "图片高度: " << image.rows << "宽度: " << image.cols << std::endl;
    //标志位
	// std::cout << "flags:" << image.flags << std::endl;
	//图像尺寸
	// std::cout << "size:" << image.size << std::endl;
	// 图像通道数
	//std::cout << "channels" << input_image.channels() << std::endl;
	//维度
	// std::cout << "dims:" << image.dims << std::endl;


    // // 保存图像
    // cv::imwrite("./gray_image.jpg", image);
    
    // // imshow显示图像
    // cv::imshow("opencv demo", image);
    // // 等待按键
    // cv::waitKey(0); 

    return 0;
}

使用cmake编译运行

cmake -S . -B build
cmake --build build
./build/open_domo ./media/cat.jpg

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

默执_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值