学习opencv(1)
阅读原文时间:2023年07月14日阅读:1

目录

CV_8UC3

a) 存放单通道图像中像素:Scalar(255)

b) 存放三通道图像中像素:Scalar(255,255,255);

Scalar--颜色赋值

预定义类型的结构:

CV_(S|U|F)C

(1) bit_depth---比特数---代表8bite\16bite\32bite\64bite

eg:8表示你所创建的储存图片的Mat对象中,每个像素点在内存空间所占的空间大小8bite。

(2) S|U|F

S: signed int,即有符号整型;

U: unsigned int,即无符号整型;

F: float,单精度浮点型。

(3) C:所存储的图片的通道数。

eg 1---grayImg灰度图像---是---单通道图像

2---RGB彩色图像---是---3通道图像

3---带Alpha通道的RGB彩色图像---是---4通道图像

using namespace cv找不到命名空间

# include "pch.h"要放到最前面

waitKey()

waitKey()函数详解

1--waitKey()--这个函数是在一个给定的时间内(单位ms)等待用户按键触发;如果用户没有按下 键,则接续等待(循环)

2--如下所示: while(1){ if(waitKey(100)==27)break; } 在这个程序中,我们告诉OpenCv等待用户触发事件,等待时间为100ms,如果在这个时间段内, 用户按下ESC(ASCII码为27),则跳出循环,否则,则跳出循环

3--如果设置waitKey(0),则表示程序会无限制的等待用户的按键事件

getTickCount()

在OpenCV编程中,可能会遇到比较不同算法之间的运算复杂度及时耗的问题,下面给出一个统计代码运行时间的demo,里面用到getTickCount函数,使用时需要添加头文件#include "opencv2/imgproc/imgproc.hpp"。

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

using namespace cv;
using namespace std;

int main(){
    double t = (double)getTickCount();//开始时间
    for (int i = 0; i <= 1000; i++){}//可替换成其他代码
    t = (double)getTickCount() - t;//代码运行时间=结束时间-开始时间
    printf("execution time = %gms\n", t*1000. / getTickFrequency());//转换时间单位并输出代码运行时间
    system("pause");//让dos界面停留
    return 0;
}

引用

1

2