[opencv]基础学习

一、图像的三种模式

在计算机看来,图像只是一些亮度各异的点,一副M*N的图片可以用M*N的矩阵来表示,矩阵的值表示这个位置上像素的亮度,他可以被表示为多种模式。

1.位图模式

位图模式是1位深度的图像。它只是黑和白两种颜色。它可以由扫描或置入黑色的矢量线条图像生成,也能由灰度模式转换而成。其他图像模式不能直接转换为位图模式。

2.灰度模式

灰度模式是8位深度的图像模式,在全黑和全白之间插有254个(2^8)灰度等级的颜色来描绘灰度模式的图像,所有模式的图像都能换成灰度模式。

3.RGB模式

RGB模式是数码图像中最重要的一个模式,它不是用数码而是用电平来描述的。扫描仪和数码相机都是捕捉RGB图像信息的。RGB模式是24位颜色深度。它共有三个通道,每个通道都有8位深度。三个通道合成一起可生成1677万种颜色,我们也称之为“真彩色”。

二、图片操作

以下都是在QT5.8.0操作的

头文件准备

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

1.读图片--imread

函数原型:

Mat       cv::imread(char filename,int flag);
/*
    参数1:图片路径名
    参数2:cv::IMREAD_COLOR:读入一副彩色图像。图像的透明度会被忽略,
    这是默认参数。--可以写成1
  cv::IMREAD_GRAYSCALE:以灰度模式读入图像--可以写成0
  cv::IMREAD_UNCHANGED:读入一幅图像,并且包括图像的 alpha 通道---可以写成-1
*/

返回值:Mat可以理解为一个存储数据的容器,定义了一个img对象来存图片的数据。

2.显示图片--imshow

imshow根据窗口名称显示图像到指定的窗口上去,

参数一:窗口名称,参数二:图片显示对象

下面是图片读取并显示的示例:

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

int main(int argc, char *argv[])
{

    Mat img=imread("C:/Users/15123/Pictures/Camera Roll/4.jpg",1);//路径不要有中文。
    imshow("img",img);//参数一:界面标题,参数二:图片显示对象
    waitKey(0);//等待按键0,加上这句,否则界只会一闪而过
    return 0;
}

效果:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值