基础版传送门:
python3+opencv学习笔记汇总目录(适合基础入门学习)
进阶版目录:
python+opencv进阶版学习笔记目录(适合有一定基础)

像素运算

要求两张图大小,以及格式(np.uint8)完全一致,否则报错。
算术运算有加减惩除。应用它调节亮度和对比度。
逻辑运算:与或非,应用:遮罩层控制
1.像素算术运算

加法运算
cv2.add(m1, m2)

import cv2 as cv
import numpy as npdef add_demo(m1, m2):dst = cv.add(m1, m2)cv.imshow("add_demo", dst)print("--------- Hello Python ---------")
src1 = cv.imread("linux logo.jpg")
src2 = cv.imread("Windowslogo.jpg")
src1=cv.resize(src1,(400,300))
src2=cv.resize(src2,(400,300))
cv.imshow("image1", src1)
cv.imshow("image2", src2)
add_demo(src1, src2)#加法
cv.waitKey(0)
cv.destroyAllWindows()

黑色为0 白色为255. 相加值超过255截断。

减法运算
cv2.subtract(m1, m2)

def subtract_demo(m1, m2):dst = cv.subtract(m1, m2)cv.imshow("subtract_demo", dst)

除法运算
dst = cv2.divide(m1, m2)

def divide_demo(m1, m2):dst = cv.divide(m1, m2)cv.imshow("divide_demo", dst)

除法得到的是很小的数值,一片黑

乘法运算
dst = cv2.multiply(m1, m2)

def multiply_demo(m1, m2):dst = cv.multiply(m1, m2)cv.imshow("multiply_demo", dst)

发现原始linux图中的黑色并不是完全为0,是 接近0的存在。

均值,方差
均值:cv2.mean(src)
方差:m, dev = cv.meanStdDev(img) 返回均值和方差

import cv2 as cv
import numpy as np
print("--------- Hello Python ---------")
src1 = cv.imread("linux logo.jpg")
src2 = cv.imread("Windowslogo.jpg")
src1=cv.resize(src1,(400,300))
src2=cv.resize(src2,(400,300))
print('src1均值:',cv.mean(src1))
print('src2均值:',cv.mean(src2))

每个通道一个颜色

2.像素逻辑运算
dst = cv2.bitwise_and(m1, m2,mask)。与或非都有mask选项
为除去mask部分的图进行逻辑运算。
可以参考
opencv进阶学习笔记2:numpy操作图像,色彩空间,查找指定颜色范围,通道分离与合并

文中讲到mask运用。

与运算:dst = cv2.bitwise_and(m1, m2)

import cv2 as cv
import numpy as npdef logic_demo(m1, m2):dst = cv.bitwise_and(m1, m2)cv.imshow("logic_demo", dst)print("--------- Hello Python ---------")
src1 = cv.imread("linux logo.jpg")
src2 = cv.imread("Windowslogo.jpg")
src1=cv.resize(src1,(400,300))
src2=cv.resize(src2,(400,300))
cv.imshow("image1", src1)
cv.imshow("image2", src2)
logic_demo(src1, src2)#与
cv.waitKey(0)
cv.destroyAllWindows()

图片格式是np.uint8 ,8位二进制,可以进行逻辑运算

或运算:dst = cv2.bitwise_or(m1, m2)

非运算:dst = cv2.bitwise_not(m1)

图像亮度对比度调节

cv2.addWeighted(图像1,系数1,图像2,系数2,亮度调节量)
亮度调节量:为给每一张图的像素加上亮度调节量。
dst = src1系数1 + src2系数2 + 亮度调节量;

import cv2 as cv
import numpy as npdef contrast_brightness_demo(image, c, b):h, w, ch = image.shapeblank = np.zeros([h, w, ch], image.dtype)#空白图像,全黑dst = cv.addWeighted(image, c, blank, 1-c, b)cv.imshow("con-bri-demo", dst)
print("--------- Hello Python ---------")
src = cv.imread("andu.jpg")
cv.imshow("image", src)
contrast_brightness_demo(src, 3, 0)
cv.waitKey(0)
cv.destroyAllWindows()

其中c越大,越亮。
起作用的是系数1,和亮度调节量。
系数2乘以的是全0数组,无用,放在这里起传参作用。

电气专业的计算机萌新,写博文不容易。如果你觉得本文对你有用,请点个赞支持下。谢谢。

opencv进阶学习笔记3:像素运算和图像亮度对比度调节相关推荐

  1. opencv进阶学习笔记2:numpy操作图像,色彩空间,查找指定颜色范围,通道分离与合并

    基础部分传送门 python3+opencv学习笔记汇总目录(适合基础入门学习) 进阶版笔记目录: python+opencv进阶版学习笔记目录(适合有一定基础) Numpy操作图像 1.遍历图像每一 ...

  2. opencv进阶学习笔记10:图像金字塔和图像梯度

    基础版笔记传送门: python3+opencv学习笔记汇总目录(适合基础入门学习) 进阶版笔记目录链接: python+opencv进阶版学习笔记目录(适合有一定基础) 图像金字塔 变小 变大 原理 ...

  3. opencv进阶学习笔记14:分水岭算法 实现图像分割

    基础版学习笔记目录: python3+opencv学习笔记汇总目录(适合基础入门学习) 进阶版笔记目录链接: python+opencv进阶版学习笔记目录(适合有一定基础) 分水岭算法原理 分水岭算法 ...

  4. opencv进阶学习笔记13:图像形态学操作大全(膨胀,腐蚀,开闭,黑帽,顶帽,梯度)python版

    基础版学习笔记: python3+opencv学习笔记汇总目录(适合基础入门学习) 进阶版笔记目录链接: python+opencv进阶版学习笔记目录(适合有一定基础) 基础版形态学: opencv学 ...

  5. opencv进阶学习笔记5:图像模糊操作,图像锐化,边缘保留滤波EPF(图像滤镜)

    基础版传送门: python3+opencv学习笔记汇总目录(适合基础入门学习) 进阶版笔记目录链接: python+opencv进阶版学习笔记目录(适合有一定基础) 模糊操作 方法:均值模糊,中值模 ...

  6. opencv进阶学习笔记11:cannny边缘检测,直线检测,圆检测

    基础版笔记传送门 python3+opencv学习笔记汇总目录(适合基础入门学习) 进阶版笔记目录链接: python+opencv进阶版学习笔记目录(适合有一定基础) cannny边缘检测 基础版边 ...

  7. opencv进阶学习笔记7:直方图,直方图均衡化,直方图比较,直方图反向投影

    基础版传送门: python3+opencv学习笔记汇总目录(适合基础入门学习) 进阶版笔记目录链接: python+opencv进阶版学习笔记目录(适合有一定基础) 直方图基础讲解: opencv学 ...

  8. opencv进阶学习笔记4:ROI和泛洪扩充

    基础版传送门链接: python3+opencv学习笔记汇总目录(适合基础入门学习) 进阶版笔记目录: python+opencv进阶版学习笔记目录(适合有一定基础) ROI 基础版ROI讲解 :op ...

  9. opencv进阶学习笔记12:轮廓发现和对象测量

    基础版笔记目录: python3+opencv学习笔记汇总目录(适合基础入门学习) 进阶版笔记目录链接: python+opencv进阶版学习笔记目录(适合有一定基础) 轮廓发现 1轮廓发现介绍 基础 ...

最新文章

  1. linux命令之上传文件和下载文件
  2. 量子力学 一 基础7 酉算符与Hausdorff-Campbell公式
  3. 《系统集成项目管理工程师》必背100个知识点-27产品范围和项目范围
  4. 【Python】保留小数点后两位精度
  5. 架构书籍推荐:Java中高级、架构师值得一读!
  6. php round half even,PHP round( )用法及代碼示例
  7. java中的同步关键字_Java中进程同步问题,锁 和synchronized 关键字的用法
  8. java 对象的交互_Java中什么是对象的交互?解释一下交互怎么操作?
  9. 财富自由之路,其实取决于你的工作效率
  10. 中国移动上市第二日逼近破发线
  11. oracle+视图+图形化,如何利用Object Browser图形化工具提高Oracle开发工作效率(二)对象创建管理篇...
  12. Magisk如何针对性隐藏Root避免被检测
  13. IDEA开发项目必备的几个查找功能的使用、查找整个项目文件内容(Find in Path)、查找某个文件名
  14. 中国象棋马走日 — 递归
  15. html5均线图源码,通达信导航家之成本均线主图指标 源码(图文)
  16. PTA 7-2 不变初心数(15分)思路简单
  17. Ubuntu中恢复rm命令误删文件(转)
  18. arduino小火车交通灯
  19. 取消和卸载Office 2010默认安装的微软拼音输入法的方法
  20. 物联网-The Internet of Things

热门文章

  1. 开正交时候卡顿_王者荣耀:不管用WiFi还是流量都是卡顿咋办!4个办法让你变流畅...
  2. CTF(Capture The Flag)
  3. XCTF WEB view_source
  4. BFS(广度优先搜索算法)
  5. android返回键方法,Android按返回键(后退键)Back键事件捕获的两种方法
  6. 电子商务就是计算机技术在传统商务中的应用,数据计算机论文,关于计算机Web数据其在电子商务中的应用相关参考文献资料-免费论文范文...
  7. Spark社区可能放弃Spark 1.7而直接发布Spark 2.x
  8. 数据结构 思维导图【绪论、线性表、栈、队列和数组、树与二叉树、图、查找、排序】
  9. thinkphp6集成JWT
  10. 多线程编程4 - GCD