一、数值运算(调节亮度,调整对比度)
OpenCV提供的图片色素的处理函数(运算的要求:两张图片的shape要一样):
(1)相加:add()

(2)相减:subtract()

(3)相乘:divide()

(4)相除:multiply()

原理就是:通过获取两张(一次只能是两张)个图片的同一个位置的色素值来实现运算,黑色是0,白色为255,当大于255会为白色,小于0为黑色。

import cv2 as cv#数值运算:加减乘除def shu_image(src11, src22):src = cv.add(src11, src22)#加cv.imshow("add", src)src = cv.subtract(src11, src22)#减cv.imshow("subtract", src)src = cv.divide(src11, src22)#乘cv.imshow("divide", src)src = cv.multiply(src11, src22)#除cv.imshow("multiply", src)src1 = cv.imread("D:/images/demo1.png")src2 = cv.imread("D:/images/demo2.png")cv.imshow("11", src1)cv.imshow("22", src2)shu_image(src1, src2)cv.waitKey(0)cv.destroyAllWindows()

(5)获取各个通道的均值

 m = cv.mean(image)print(m)  #都过小则偏暗,单个过大的通道可认为是主色彩

(6)获取每个图像的方差

m,dev = cv.meanStdDev(image)    #返回均值和方差,分别对应3个通道
print(m)
print(dev)    过大说明像素间的差异就大

若dev小,则说明图片的色彩差异(对比性)是较小的,若整张图片同色,则方差是0,均值是0,可以用来查看扫描仪中是否有信息丢失(方差小于一个预值,则失效,丢弃)
二、逻辑运算(遮罩层控制)
1,opencv提供图片像素的处理函数:

与:bitwise_add() (类似于遮罩,当我们使用白色遮罩)

或:bitwise_or()

非:bitwise_not() (对一张图片取反)

异或:bitwise_xor()

import cv2 as cv#逻辑运算:与或非的操作
def luo_image(src11, src22):src = cv.bitwise_and(src11, src22) # 两张图片同一位置的色素两个值均不为零的才会有输出cv.imshow("与", src)src = cv.bitwise_or(src11, src22)  # 两张图片同一位置的色素两个值不全为零的才会有输出cv.imshow("或", src)src = cv.bitwise_not(src11)        # 对一张图片操作  取反cv.imshow("非", src)src = cv.bitwise_xor(src11, src22) # 两张图片同一位置的色素两个值有一个为零,另一个不为零才会输出cv.imshow("异或", src)src1 = cv.imread("D:/images/demo1.png")src2 = cv.imread("D:/images/demo2.png")cv.imshow("11", src1)cv.imshow("22", src2)luo_image(src1, src2)cv.waitKey(0)cv.destroyAllWindows()

2,针对视频中inrange,先将image二值化,提取出目标对象,然后再与原图bitwise_and,就会把目标对象提取出来关于lower_hsv 和 upper_hsv 的取值参见下表:

import cv2 as cv
import numpy as npdef extrace_object_demo():                                 #追踪有颜色的对象capture = cv.VideoCapture("D:/vcprojects/images/video.mp4")while(True):ret, frame = capture.read()    #frame是每一帧图像,ret是返回值,为0是表示图像读取完毕if ret == False:break;hsv = cv.cvtColor(frame, cv.COLOR_BGR2HSV) lower_hsv = np.array([37, 43, 46])upper_hsv = np.array([77, 255, 255])mask = cv.inRange(hsv, lowerb=lower_hsv, upperb=upper_hsv) #该函数输出的dst是一幅二值化之后的图像(是将满足我们的图像对象所有位都设为1白色,不满足设置为0黑色)dst = cv.bitwise_and(frame, frame, mask=mask) #提取出目标对象,然后再与原图bitwise_and,就会把目标对象提取出来cv.imshow("video", frame)cv.imshow("mask", mask)cv.imshow("dst", dst)c = cv.waitKey(40)if c == 27: #退出break

3,调整亮度和对比度 addWeighted

def contrast_brightness_demo(image,c,b):''':param image:   原图:param c:   对比度 是将像素乘与c,原来2,4---->4, 8  差距由2--->4导致对比增强:param b:   亮度  是将每个像素点加上相关亮度:return:'''h,w,ch = image.shapeblank = np.zeros([h,w,ch],image.dtype)  #创建一个全黑图像dst = cv.addWeighted(image,c,blank,1-c,b)cv.imshow("dst",dst)

说明

基本原理:两张图片合成。dst = src1alpha+src2beta+gamma
对比度:制造一个全黑(像素为0),通过权重相加,乘以倍数就会使像素之间的差异性成倍增大,对比度提升
亮度:+像素值,让图片像素往255靠近,(255,255,255)是白色,图片越来越亮

1、第1个参数,输入图片1,
2、第2个参数,图片1的融合比例
3、第3个参数,输入图片2
4、第4个参数,图片2的融合比例
5、第5个参数,偏差
6、第6个参数,输出图片

OpenCV+python:像素运算相关推荐

  1. python像素处理_Python+OpenCV图像处理(五)—— 像素运算

    最近在忙毕业设计,只能偶尔更新博客........ 一.像素的算术运算 像素的算术运算涉及加减乘除等基本运算(要进行算术运算,两张图片的形状(shape)必须一样) 代码如下: #像素的算术运算(加. ...

  2. opencv进阶学习笔记3:像素运算和图像亮度对比度调节

    基础版传送门: python3+opencv学习笔记汇总目录(适合基础入门学习) 进阶版目录: python+opencv进阶版学习笔记目录(适合有一定基础) 像素运算 要求两张图大小,以及格式(np ...

  3. python怎么编写视觉识别_Python视觉识别--OpenCV色彩空间\图像运算\ROI(四)

    (七) 色彩空间 什么是色彩空间,人们建立了多种色彩模型,以一维.二维.三维甚至四维空间坐标来表示某一色彩,这种坐标系统所能定义的色彩范围即色彩空间 色彩空间有很多,但是常用的色彩空间一共5种:RGB ...

  4. OpenCV+python:Canny边缘检测算法

    1,边缘处理 图像边缘信息主要集中在高频段,通常说图像锐化或检测边缘,实质就是高频滤波.我们知道微分运算是求信号的变化率,具有加强高频分量的作用. 在空域运算中来说,对图像的锐化就是计算微分.由于数字 ...

  5. openCV—Python(6)—— 图像算数与逻辑运算

    openCV-Python(6)-- 图像算数与逻辑运算 一.函数简介 1.add-图像矩阵相加 函数原型:add(src1, src2, dst=None, mask=None, dtype=Non ...

  6. OpenCV Python教程(3)(4)(5): 直方图的计算与显示 形态学处理 初级滤波内

    OpenCV Python教程(3.直方图的计算与显示) 本篇文章介绍如何用OpenCV Python来计算直方图,并简略介绍用NumPy和Matplotlib计算和绘制直方图 直方图的背景知识.用途 ...

  7. 36篇博文带你学完opencv :python+opencv进阶版学习笔记目录

    基础版学习笔记传送门 36篇博文带你学完opencv :python3+opencv学习笔记汇总目录(基础版) 进阶版笔记 项目 opencv进阶学习笔记1: 调用摄像头用法大全(打开摄像头,打开摄像 ...

  8. python 图像无缝拼接,OpenCV Python 系列教程3 - Core 组件

    基本知识 灰度图像的存储方式: image 多通道图像存储方式 image OpenCV 中的通道存储为 BGR 像素值的存储方式 RGB 模式,显示设备采用这种模式 HSV.HLS 将颜色分解成色调 ...

  9. 美颜(磨皮,大眼)opencv python实现

    本文是利用opencv python 的美颜(磨皮,大眼)实现. 1 磨皮 1.1 导向滤波 磨皮使用的是导向滤波进行磨皮.关于导向滤波的介绍,可以看我的另一篇文章导向滤波与opencv python ...

  10. 用Numba加速OpenCV Python视频处理代码,提升6.5倍性能

    使用Numba对OpenCV Python视频处理代码加速.性能提升6.5倍 1.目标问题: 在 OpenCV Python 中视频处理是比较耗资源的,从而造成画面卡顿,如果跳帧处理可能造成丢失关键数 ...

最新文章

  1. 工行分布式数据库选型与大规模容器化实践
  2. Buildroot用户指南
  3. 3.TF-IDF算法介绍、应用、NLTK实现TF-IDF算法、Sklearn实现TF-IDF算法、算法的不足、算法改进
  4. 最小错误率贝叶斯决策
  5. Spring Boot笔记-拦截器相关(用户权限方面)
  6. 博客搬家到github啦
  7. Python优雅地可视化数据
  8. mysql 作业调度及问题解决
  9. JAVA之多线程概念及其几种实现方法优劣分析
  10. mysql基础之mariadb集群主从架构
  11. ora使用动态sql给变量赋值
  12. uc浏览器登录报错50001解决方案,登录失败,请重试50001
  13. 计算机快捷键英语,输入法电脑中英文切换快捷键
  14. 京东:亦庄CBD里,南五环“村民”的生活哲学
  15. ftp 服务器 性能,Xlight FTP服务器网络性能测试
  16. 沧桑,何尝不是一种美丽 ----红尘一笑
  17. wps excel 中将一行多列数据转换为一行两列的格式 的方法函数
  18. 美国佐治亚大学计算机专业,美国计算机专业大学排名TOP10
  19. (几何方面:六边形面积)编写程序,提示用户输入六边形的边长,然后输出显示它的面积。 计算六边形面积的公式是:area= s2 这里的s就是边长。下面是一个运行示例: 请输入边长:5.5
  20. 《JS实现复制内容到剪贴板功能,可兼容所有PC浏览器,不兼容手机端》

热门文章

  1. 2022-2028年中国IT外包市场投资分析及前景预测报告
  2. 2022-2028年中国文化产业园投资分析及前景预测报告(全卷)
  3. 算法基础(09)— 字符串常用操作
  4. 不同的设计模式的特点总结
  5. 难忘的一天——装操系统(五)
  6. 离线安装Visual Studio Code插件
  7. Pytorch两种模型保存方式
  8. Python学习--not语句
  9. Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521))) TNS-12541: TNS:no li
  10. 第三天:Vue的组件化