所有分类
主题 主题
平台 平台
我的工作台
userHead
注册时间 [[userInfo.create_time]]
创造力 [[userInfo.creativity]]
[[userInfo.remark]]
[[d.project_title]]
articleThumb
[[d.material_name]]
timelineThumb
进入工作台
折叠
所有分类 我的工作台
展开

用Mind+学OpenCV系列教程二——计算机“眼”中的图

肥罗-阿勇 肥罗-阿勇 2022-05-13 14:38:12
projectImage

在上一个教程我们已经学习了如何用OpenCV 读取、显示、保存计算机中的图像文件。

接下来我们要学习如何对这些图像文件进行处理,使其满足我们的需求。

在正式学习对图片处理之前,我们先要来了解一下,在计算机“眼”中图像是什么样的。

 

人眼中的图片

projectImage

在计算机中,它们眼里的图片就是一堆数字信息。

当我们把图片不断放大的时候就会发现,它们都是由一个个小色块组成。

projectImage

像这样的一个色块称为一个像素,一张图片的像素越多,图片越清晰,细节越多,同时文件也越大。

这张图横向有32个像素,纵向有41个像素,一般我们说这张图片的尺寸为32*41.

 

每个像素又由红、绿、蓝三个基本颜色组成,称为颜色通道。

projectImage

PS:要注意,OpenCV里的颜色通道是 BGR,不是我们常说的RGB。

BGR图像的像素结构如下,作为演示,详细展示了如何访问某个像素点 pixel(y=n,x=1)

projectImage
步骤1 步骤1
显示图片的行数、列数和通道
projectImage

在上一节代码的基础上,显示图片的行数列数和通道数

projectImage

效果如下

projectImage

也就是该文件400行(像素),300列(像素),3个通道

步骤2 步骤2
显示图片大小
projectImage
projectImage

这个36000是怎么来的?

36000=400*300*3

步骤3 步骤3
显示图片数据类型
projectImage
projectImage

为了节省存储空间,该图片采用8为无符号整数(uint8)类型存储。

步骤4 步骤4
为图像添加边框

我们可以为图像增加一个边框,先来看代码和效果。

projectImage

效果如下:

projectImage

通过对比我们可以看到,图像的尺寸是比之前大的,因此是增加了边框,而不是在原图上画一个边框。

使用到的代码主要是这个

projectImage

里面的参数很好理解,比较难理解的是边框类型,我们通过对比来看看各是什么效果

projectImage

在这一节我们主要了解在OpenCV 中图像的基础知识,为下一节我们处理图像奠定基础。

Makelog作者原创文章,未经授权禁止转载。
0
0
评论
[[c.user_name]] [[c.create_time]]
[[c.parent_comment.count]]
|
[[c.comment_content]]