》》点赞,收藏+关注,理财&技术不迷路《《
目录:
对两幅图进行运算,这里有两个要求:
图像大小要一样
图像的数据类型要一样
5.1 算数运算
5.1.1 加减:
这里原理很简单:linux这个图片,他的背景是黑色,黑色的 0 0 0,所以0 0 0 加上其他的数值就是其他的数值,所以最后背景还是蓝色。
同理linux这几个字是白色,255, 255, 255. 一般默认类型是uint8, 八个字节最多表示255个数,所以相加一定会超过255, 超过255就截断,就直接等于255.
5.1.2 乘除:
# 其实linux这个原图中字母周围不一定完全是0,黑白交界处可能是很小很小的值
# 经过乘法后,就有一个值,就产生了这种锯齿状效果
# linux乘法完后中间还有蓝色,(255*大于一的值一定会截断啊?)
# 因为windows图标上有黑色的阴影部分,这个部分的值小于1,所以出现蓝绿色
5.1.3 方差和均值:
均值可以直接 cv.mean() 来算
方差可以通过 cv.stddev() 来算
直接通过 cv.meanStdDev() 来返回两个值
我们可以通过 方差和均值 来过滤图片。
若一个图片方差 = 0, 那么可以直接放弃这个图片了, 因为它根本不能称之为图片,因为没有任何信息,只能是一个常量表。
单独看均值(体现整图片体颜色分布):
明显第一个均值比较低,就说明它整体偏暗,因为值都偏小。
第二个,B通道均值高,因为背景是蓝色的,G其次,因为绿色在windows中还是占了一定比重,R最小,因为红色基本没占很大。
前两个是均值,后两个是方差,均值之前分析过了。
方差:m1的方差都是58, 第二个m2的方差基本都小于m1, 相比较下,方差较大的说明图像之间的差异性较大,对比度越大。若全为0, 那么方差肯定都为0.
5.1.4 mean和dev理论补充
均值反映了图像的亮度,均值越大说明图像亮度越大,反之越小;
**方差 (variance) **是在概率论和统计方差衡量随机变量或一组数据时离散程度的度量。概率论中方差用来度量随机变量和其数学期望(即均值)之间的偏离程度。统计中的方差(样本方差)是每个样本值与全体样本值的平均数之差的平方值的平均数。在许多实际问题中,研究方差即偏离程度有着重要意义。
这是它的数学公式:
其中:X为变量,μ为总体平均数,N为总体数量
中国的数学从娃娃抓起,所以对于“方差”应该不陌生。在高中数学的抽样计算、大学的概率论、硕士课程的多元统计分析中,随处可见“方差”的影子。
简单来说,方差是衡量源数据和期望值相差的度量值。
图像的方差 图像的方差是计算每个像元的灰度值减去图像平均灰度值的平方和除以总的像素个数。其实就是将数学中常见的实际抽样问题变成了一张图像关于灰度值的方差问题。
计算图像方差的意义 图像的方差反应图像的高频部分的灰度值大小,这与图像的对比度有关。所以,如果图片对比度小,那方差就小;如果图片对比度很大,那方差就大;
图像方差越大越好还是越小越好? 在数学问题中,一般情况下,应该是越小越好,说明数据源离散度小,数据波动小,较为稳定。
在图像中,对比度越大使得人的视觉效果越好,更容易区分照片中的不同物体。但是也不是说越大越好,这里需要按照参考实际的效果。但切记,要与数学问题中的方差要有区分。
5.2 逻辑运算/ 布尔运算
表示方法:
"∨" 表示"或"
"∧" 表示"与".
"┐"表示"非".
"=" 表示"等价".
1和0表示"真"和"假"
(还有一种表示,"+"表示"或", "·"表示"与")
And:同为真时为真
Or:同为假时为假
Xor:相同为假
5.2.1 什么是逻辑运算
1 & 1 =1;1 & 0 = 1;0 & 0 = 0;
5.2.2 与:bitwise_and
只保留全非0区域!!
所以很明显,黑色区域都是0, 那么黑色和蓝色做逻辑运算,肯定都是0. 白色是非0区域,就直接取windows原图里面东西,但是只显示在linux白色里面。
所以像一个遮罩罩在windows这个团上面。
5.2.3 或:bitwise_or
所有非 0 的都会有输出。
5.2.4 非:bitwise_not
非就是按位取反。只针对同一张图。
通过这个技巧我们可以将之前的mask视频里面的颜色显示出来。
5.2.5 异或bitwise_xo
5.2.6 亮度和对比度提升
cv.addWeighted(First_image, F_weight, Second_image, S_weight, brightness, ...)
c = 1.2 是对比度。b = 10是亮度(相当于每个通道上像素都加了10)
亮度加到100: 对比度:5