深度学习入门

深度学习(CV方向)入门----OpenCV篇之图像读取



前言

本文章用于记录自己所学,才疏学浅,如有错误望大家指正,谢谢。


一、Python版

函数原型

img = cv.imread(fileName, flag)

fileName: 读取图像的路径,包含文件扩展名
flag: 读取图像形式的标志,可以使用标志符(eg: cv.IMREAD_UNCHANGED),亦可使用数字(eg: -1)表示。cv.IMREAD_UNCHANGED与-1含义相同,按照图像原样读取。共有13种标志,本文不做详细展开。

代码示例

import cv2 as cv
import sys


if __name__ == '__main__':
    img = cv.imread('/home/alex/opencv/data/image/8468731.jpg',
                    cv.IMREAD_UNCHANGED)  # 读取图像 cv.IMREAD_UNCHANGED图像保持不变
    if img is None:
        # 未读取到图像,推出程序    		
        print("Failed to load image!")
        sys.exit()
    else:
        # 窗口命名 cv.WINDOW_NORMAL允许用户调整窗口大小
        cv.namedWindow("test_1", cv.WINDOW_NORMAL)
        cv.imshow("test_1", img)
        # 等待键盘输入任意建,退出。其中0可以替换为任意正整数n,表示延迟n毫秒后退出
        cv.waitKey(0)
        cv.destroyWindow("test_1")
        print("complete!")

二、C++版

函数原型

cv::Mat
cv::imread(const String & fileName, int flag=IMREAD_COLOR)

fileName: 读取图像的路径,包含文件扩展名称
flag: 读取图像形式的标志,可以使用标志符(eg: IMREAD_UNCHANGED),亦可使用数字(eg: -1)表示。IMREAD_UNCHANGED与-1含义相同,按照图像原样读取。共有13种标志,本文不做详细展开。

代码示例

#include <iostream>
#include <opencv2/opencv.hpp>
#include <cstdlib>
using namespace std;
using namespace cv;

int main(void)
{
    Mat img;                                                                    // 定义一个保存图像的Mat类
    img = imread("/home/alex/opencv/data/image/8468731.jpg", IMREAD_UNCHANGED); //读取图像 IMREAD_UNCHANGED图像保持不变
	// 此时如果未读取到图像数据,就会返回一个空矩阵,可以使用empty()函数判断。如果矩阵为空,则empty()返回值为1。
    if (img.empty())
    {
        cout << "Failed to load image!" << endl;
        exit(EXIT_FAILURE);
    }
    else
    {
        namedWindow("test_1", WINDOW_NORMAL); //窗口命名 cv.WINDOW_NORMAL允许用户调整窗口大小
        imshow("test_1", img);
        waitKey(0);
        destroyWindow("test_1");
    }

    return 0;
}

注意

由于OpenCV读取图像的方式为BGR,而其他工具包读取图像的方式为RGB。在训练深度学习模型时使用OpenCV读取图像,而在预测时使用其他工具包读取图像时就可能产生问题。

参考文献

[1] OpenCV4快速入门. 冯振
[2] OpenCV4详解基于Python. 冯振
[3] OpenCV4.5 计算机视觉开发实战 基于VC++. 朱文伟

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值