图片像素的数值运算和逻辑运算及对比度调节

摘要:
1、 算术运算:这主要包括--------加法、减法、乘法和除法;1.添加两张照片,并使用自己的Add()函数处理:1importcv2ascv23defshu_ Image(m1,m2):4src=cv。add(m1,m2)#添加。5厘米。imshow('add',src)67src1=简历。imread(“D:/hhh.jpg”)8src2=简历。imread(“D:/hhhh.jpg”)

         一、算术运算:这个主要包括---------加、减 、乘、除;     

           1、进行两张照片相加处理,利用它自带的add()函数处理:

 1 import cv2 as cv
 2 
 3 def shu_image(m1,m2):
 4     src=cv.add(m1,m2)  #进行相加处理
 5     cv.imshow('add',src)
 6 
 7 src1=cv.imread("D:/hhh.jpg")
 8 src2=cv.imread("D:/hhhh.jpg")
 9 
10 cv.imshow("image1",src1)
11 cv.imshow("image2",src2)
12 shu_image(src1,src2)
13 
14 cv.waitKey(-1)
15 cv.destoryAllWindows()

       实现效果 如下(这里解释一下add这个窗口结果显示,这个是因为imga1窗口照片黑色部分它的色彩位数是0,而image2窗口照片除微软那个logo 外其余部分色彩在0----255之间,所以结果就是这部分颜色了,其余部分都是按照相加即可):

       图片像素的数值运算和逻辑运算及对比度调节第1张

    2、进行相减处理,用subtract()函数处理:

      

 1 import cv2 as cv
 2 
 3 def shu_image(m1,m2):
 4       src=cv.subtract(m1,m2) #相减处理
 5       cv.imshow('subtract',src)
 6 
 7 src1=cv.imread("D:/hhh.jpg")
 8 src2=cv.imread("D:/hhhh.jpg")
 9 
10 cv.imshow("image1",src1)
11 cv.imshow("image2",src2)
12 shu_image(src1,src2)   #是用src1-src2处理的
13 
14 cv.waitKey(-1)
15 cv.destoryAllWindows()

  实现效果如下:

图片像素的数值运算和逻辑运算及对比度调节第2张

     3、进行相乘处理,使用函数mutiply()处理:

       

 1 import cv2 as cv
 2 
 3 def shu_image(m1,m2):
 4      src=cv.multiply(m1,m2)
 5      cv.imshow('mutiply',src)
 6 
 7 src1=cv.imread("D:/hhh.jpg")
 8 src2=cv.imread("D:/hhhh.jpg")
 9 
10 cv.imshow("image1",src1)
11 cv.imshow("image2",src2)
12 shu_image(src1,src2)  
13 
14 cv.waitKey(-1)
15 cv.destoryAllWindows()

     实现效果如下:  图片像素的数值运算和逻辑运算及对比度调节第3张

        4、进行相除处理,利用函数divide()处理:

             

 1 import cv2 as cv
 2 
 3 def shu_image(m1,m2):
 4      src=cv.divide(m1,m2)
 5      cv.imshow('divide',src)
 6 
 7 src1=cv.imread("D:/hhh.jpg")
 8 src2=cv.imread("D:/hhhh.jpg")
 9 
10 cv.imshow("image1",src1)
11 cv.imshow("image2",src2)
12 shu_image(src1,src2)   
13 
14 cv.waitKey(-1)
15 cv.destoryAllWindows()

      实现效果如下:

        图片像素的数值运算和逻辑运算及对比度调节第4张

       二、逻辑运算:

            1、逻辑运算函数:

                a、bitwise_and()     与运算

                b、bitwise_or()         或运算

                c、bitwise_not()       非运算

                d、 bitwise_xor()        异或运算

           2、代码操作:

 1 import cv2 as cv
 2 
 3 def luo_image(m1,m2):
 4     src=cv.bitwise_and(m1,m2)  #与运算
 5     cv.imshow('and',src)
 6     src = cv.bitwise_or(m1, m2) #或运算
 7     cv.imshow('or', src)
 8     src = cv.bitwise_not(m1, m2)  #非运算
 9     cv.imshow('not', src)
10     src = cv.bitwise_xor(m1, m2)  #异或运算
11     cv.imshow('xor', src)
12 
13 src1=cv.imread("D:/hhh.jpg")
14 src2=cv.imread("D:/hhhh.jpg")
15 
16 cv.imshow("image1",src1)
17 cv.imshow("image2",src2)
18 luo_image(src1,src2)
19 
20 cv.waitKey(0)
21 cv.destoryAllWindows()

           实现效果如下:

         图片像素的数值运算和逻辑运算及对比度调节第5张  

           三、对比度调节,用addWeighted()函数处理:

             这个addWeighted()参数比较多,看一下它标准参数有哪些:

 1 Help on built-in function addWeighted:
 2 
 3 addWeighted(...)
 4     addWeighted(src1, alpha, src2, beta, gamma[, dst[, dtype]]) -> dst
 5     .   @brief Calculates the weighted sum of two arrays.
 6     .   
 7     .   The function addWeighted calculates the weighted sum of two arrays as follows:
 8     .   f[	exttt{dst} (I)= 	exttt{saturate} ( 	exttt{src1} (I)* 	exttt{alpha} +  	exttt{src2} (I)* 	exttt{beta} +  	exttt{gamma} )f]
 9     .   where I is a multi-dimensional index of array elements. In case of multi-channel arrays, each
10     .   channel is processed independently.
11     .   The function can be replaced with a matrix expression:
12     .   @code{.cpp}
13     .   dst = src1*alpha + src2*beta + gamma;
14     .   @endcode
15     .   @note Saturation is not applied when the output array has the depth CV_32S. You may even get
16     .   result of an incorrect sign in the case of overflow.
17     .   @param src1 first input array.
18     .   @param alpha weight of the first array elements.
19     .   @param src2 second input array of the same size and channel number as src1.
20     .   @param beta weight of the second array elements.
21     .   @param gamma scalar added to each sum.
22     .   @param dst output array that has the same size and number of channels as the input arrays.
23     .   @param dtype optional depth of the output array; when both input arrays have the same depth, dtype
24     .   can be set to -1, which will be equivalent to src1.depth().
25     .   @sa  add, subtract, scaleAdd, Mat::convertTo

  然后我们实现功能代码:

 1 import cv2 as cv
 2 import numpy as np
 3 def contrast_bright_image(m1,a,g):
 4     h,w,ch = m1.shape   #获取图片的大小,height,width以及通道
 5     #新建全零图片数组m2,将height和width,类型设置为原图片的通道类型(色素全为0,输出全为黑色)
 6     m2=np.zeros([h,w,ch],m1.dtype)    #利用numpy 的矩阵处理功能
 7     dst=cv.addWeighted(m1,a,m2,1-a,g)
 8     cv.imshow('bright',dst)
 9 src=cv.imread("D:/hh.JPG")
10 cv.namedWindow('原来',cv.WINDOW_NORMAL)
11 cv.imshow("原来",src)
12 contrast_bright_image(src,1.2,30) # 1.2 表示对比度,10表示亮度值
13 
14 cv.waitKey(0)
15 cv.destoryAllWindows()

     效果如下:

           图片像素的数值运算和逻辑运算及对比度调节第6张

              好了今天的分享就到这里了,明天继续加油。 

免责声明:文章转载自《图片像素的数值运算和逻辑运算及对比度调节》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇SR-IOV Single root I/O virtualization 使用说明,待验证LoadRunner中log的使用总结下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

python利用opencv去除水印方法

OpenCV(Open Source Computer Vision Library)是一个跨平台计算机视觉库,实现了图像处理和计算机视觉方面的很多通用算法 在python中可以利用opencv来去除水印 opencv安装 window10 OpenCV 3:http://www.lfd.uci.edu/~gohlke/pythonlibs/#opencv...

Python实现人脸检测(个人、多人、视频)

我们先逐步进行学习。我将人脸检测的学习步骤分为如下几个方面。(1—4是一些小步骤。5—7是具体实现的案例)关于代码的相关意义我已经在程序中写上了备注(已经尽可能详细了!!) 1、加载图片: 源程序代码如下: """ __author__="dazhi" 2021/3/20-15:00 """ #导入模块 import cv2 ascv #读...

javascript实现图片延迟加载方法汇总(三种方法)

看到一些大型网站,页面如果有很多图片的时候,当你滚动到相应的行时,当前行的图片才即时加载的,这样子的话页面在打开只加可视区域的图片,而其它隐藏的图片则不加载,一定程序上加快了页面加载的速度,跟着小编一起学习javascript实现图片延迟加载吧 看到一些大型网站,页面如果有很多图片的时候,当你滚动到相应的行时,当前行的图片才即时加载的,这样子的话页面在打开...

img图片不存在显示默认图

在项目中,我们使用img标签加载图片,有时候图片地址有可能失效,获取路径问题,导致图片加载失败,img标签就会显示alt内容。这时候用户体验不是很好,所以就需要显示一张默认图片。 第一种方式:使用jquery_lazyload插件实现图片懒加载。只需要在src中写上默认图片地址即可。 <img src="/static/images/dlb.jpg"...

MTF的倾斜边缘计算方法

  光学系统性能的衡量方法有很多,常见的有点扩散函数法、瑞利判断法、点 列图法、光学传递函数(MTF)法等,其中 MTF 法在光学系统和镜头加工制造中 使用 最为广泛。MTF 曲线真实的反映了成像系统将物方信息传递到像方的能力。 MTF 曲线的横坐标一般是 cycle/mm 或者 linepair/mm,纵坐标是反映对比 度传递特性的像/物方调制度的比值。...

使用局部标准差实现图像的局部对比度增强算法。

图像的对比度增强算法在很多场合都有着重要的应用,特别是在医学图像上,这是因为在众多疾病的诊断中,医学图像的视觉检查时很有必要的。而医学图像由于本身及成像条件的限制,图像的对比度很低。因此,在这个方面已经开展了很多的研究。这种增强算法一般都遵循一定的视觉原则。众所周知,人眼对高频信号(边缘处等)比较敏感。虽然细节信息往往是高频信号,但是他们时常嵌入在大量的低...