其他分享
首页 > 其他分享> > OpenCV入门到进阶:实战三大典型项目

OpenCV入门到进阶:实战三大典型项目

作者:互联网

OpenCV入门到进阶:实战三大典型项目

【OpenCV基础】掩膜操作

掩膜操作,分辨率,FOV,像素值,位图深度,计时函数,%d

1.像素值
像素值是图像被数字化时由计算机赋予的值,代表了图像中某一小方块(即【像素点】)的平均亮度信息。

灰度图像通常用8位表示一个像素,这样总共有256个灰度等级(像素值在0~255之间)。

对于RGB彩色图像来说,RGB的所谓“多少”就是指亮度,并使用整数来表示。通常情况下,RGB各有256级亮度,亮度取值范围为0~255,共256级。按照计算,256级的RGB色彩总共能组合出约1678万种色彩,即256256256=16777216。通常也被简称为1600万色或千万色,也称为24位色(2的24次方)。R=0,G=0,B=0,各通道亮度均为0,自然是黑色。R=255,G=255,B=255,各通道亮度均为最大,就是白色。

1.1.分辨率
分辨率可分为显示分辨率和图像分辨率。

显示分辨率:又称屏幕分辨率,是指显示器所能显示的像素点的个数。即每行的像素点数每列的像素点数,例如:1024768。
图像分辨率:即单位英寸中所包含的像素点数,其定义更趋近于分辨率本身的定义。可以简单理解为每个像素点的大小。
1.2.FOV
FOV是Field Of View的简称,即视野(CT中常称为扫描野)。通常有FOV=矩阵大小*分辨率。单位通常为mm或cm。

2.OpenCV处理图像像素
2.1.获取图像像素指针
Mat.ptr(int i=0):获取像素矩阵的指针,索引i表示第几行,从0开始计数。

获取点P(row,col)的像素值:Mat.ptr(row)[col]。

⚠️像素值通常为uchar类型,因为像素值的取值范围通常为0~255,和uchar(即unsigned char)取值范围一样。但是也可以根据实际情况调整为其他类型。

2.2.获取图像的长和宽
Mat.cols输出的是图像x轴的像素个数,即Width。

Mat.rows输出的是图像y轴的像素个数,即Height。

Mat.channels()输出的是每个像素点的通道个数,RGB图像通道个数为3。

2.3.像素范围处理
saturate_cast可用于控制像素值的取值不超过uchar所能表示的范围,即0~255。也可根据需求换成其他类型。

saturate_cast(<0),像素值小于0时返回0。
saturate_cast(>255),像素值大于255时返回255。
saturate_cast(0≤i≤255),返回i。
3.掩膜操作
3.1.掩膜
数字图像处理中的掩膜的概念是借鉴于PCB制版的过程,在半导体制造中,许多芯片工艺步骤采用光刻技术,用于这些步骤的图形“底片”称为掩膜(也称作“掩模”),其作用是:在硅片上选定的区域中对一个不透明的图形模板遮盖,继而下面的腐蚀或扩散将只影响选定的区域以外的区域。

3.1.1.图像掩膜
图像掩膜与其类似,用选定的图像、图形或物体,对处理的图像(全部或局部)进行遮挡,来控制图像处理的区域或处理过程。

3.2.矩阵的掩膜操作

\/ itspcool 交流学习

标签:进阶,掩膜,分辨率,像素,OpenCV,图像,像素点,三大,255
来源: https://www.cnblogs.com/gopter/p/14726655.html