最近在忙毕业设计,只能偶尔更新博客........

一、像素的算术运算

像素的算术运算涉及加减乘除等基本运算(要进行算术运算,两张图片的形状(shape)必须一样)

代码如下:

#像素的算术运算(加、减、乘、除) 两张图片必须shape一致

importcv2 as cvdef add_demo(m1, m2): #像素的加运算

dst =cv.add(m1, m2)

cv.imshow("add_demo", dst)def subtract_demo(m1, m2): #像素的减运算

dst =cv.subtract(m1, m2)

cv.imshow("subtract_demo", dst)def divide_demo(m1, m2): #像素的除法运算

dst =cv.divide(m1, m2)

cv.imshow("divide_demo", dst)def multiply_demo(m1, m2): #像素的乘法运算

dst =cv.multiply(m1, m2)

cv.imshow("multiply_demo", dst)

src1= cv.imread('E:\imageload\LinuxLogo.jpg')

src2= cv.imread('E:\imageload\WindowsLogo.jpg')cv.imshow('image1', src1)

cv.imshow('image2', src2)

add_demo(src1, src2)

subtract_demo(src1, src2)

divide_demo(src1, src1)

multiply_demo(src1, src2)

cv.waitKey(0)

cv.destroyAllWindows()

运行结果:

注意:

1.这里的的像素运算指的是多维数组对应的值进行加减乘除运算,前提是两张图片必须shape、size一样

2.在相除的时候,一个很小的数除以很大的数结果必然小,所以得出的图像几乎全黑。(黑色为0,白色为255)

3.在相乘的时候,图案“Linux”边缘上的像素并不稳定

二、像素的逻辑运算

像素的逻辑运算涉及与、或、非、异或等基本运算(要进行逻辑运算,两张图片的形状(shape)必须一样)

这里主要展示与或非的逻辑运算

代码如下:

#像素的逻辑运算(与、或、非) 两张图片必须shape一致

importcv2 as cvdef and_demo(m1, m2): #与运算 每个像素点每个通道的值按位与

dst =cv.bitwise_and(m1, m2)

cv.imshow("and_demo", dst)def or_demo(m1, m2): #或运算 每个像素点每个通道的值按位或

dst =cv.bitwise_or(m1, m2)

cv.imshow("or_demo", dst)def not_demo(m1): #非运算 每个像素点每个通道的值按位取反

dst =cv.bitwise_not(m1)

cv.imshow("not_demo", dst)

src1= cv.imread('E:\imageload\LinuxLogo.jpg')

src2= cv.imread('E:\imageload\WindowsLogo.jpg')cv.imshow('image1', src1)

cv.imshow('image2', src2)

and_demo(src1, src2)

or_demo(src1, src2)

not_demo(src1)

cv.waitKey(0)

cv.destroyAllWindows()

运行结果:

注意:这里的逻辑运算是按照像素点的各通道的值按二进制形式按位与或非进行运算的

三、调节图片对比度和亮度

代码如下:

#调节图片对比度和亮度

importcv2 as cvimportnumpy as npdef contrast_brightness_image(img1, ratio, b): #第2个参数rario为对比度 第3个参数b为亮度

h, w, ch =img1.shape

img2= np.zeros([h, w, ch], img1.dtype) #新建的一张全黑图片和img1图片shape类型一样,元素类型也一样

dst = cv.addWeighted(img1, ratio, img2, 1 -ratio, b)

cv.imshow("csecond", dst)

src= cv.imread("E:\imageload\example.png")

cv.imshow("first", src)

contrast_brightness_image(src,0.1, 10)

cv.waitKey(0)

cv.destroyAllWindows()

运行结果:

注意:help(cv2.addWeighted)可得到.addWeighted函数的官方解释。

函数addWeighted的原型:addWeighted(src1, alpha, src2, beta, gamma[, dst[, dtype]]) -> dst

src1表示需要加权的第一个数组(上述例子就是图像矩阵)

alpha表示第一个数组的权重

src2表示第二个数组(和第一个数组必须大小类型相同)

beta表示第二个数组的权重

gamma表示一个加到权重总和上的标量值

即输出后的图片矩阵:dst = src1*alpha + src2*beta + gamma;

python像素处理_Python+OpenCV图像处理(五)—— 像素运算相关推荐

  1. python数字图像处理、色彩空间类型转换_Python+OpenCV图像处理—— 色彩空间转换...

    一.色彩空间的转换 代码如下: #色彩空间转换 import cv2 as cv def color_space_demo(img): gray = cv.cvtColor(img, cv.COLOR ...

  2. python 检测直线 交点_Python+OpenCV图像处理——实现直线检测

    简介: 1.霍夫变换(Hough Transform) 霍夫变换是图像处理中从图像中识别几何形状的基本方法之一,应用很广泛,也有很多改进算法.主要用来从图像中分离出具有某种相同特征的几何形状(如,直线 ...

  3. python怎么打印图片_Python+OpenCV图像处理——打印图片属性、设置存储路径、调用摄像头...

    一. 打印图片属性.设置图片存储路径 代码如下: #打印图片的属性.保存图片位置 import cv2 as cv import numpy as np #numpy是一个开源的python科学计算库 ...

  4. python 视觉技术_python+opencv实现机器视觉基础技术(边缘提取,图像滤波,边缘检测算子,投影,车牌字符分割)...

    机器视觉是人工智能正在快速发展的一个分支.简单说来,机器视觉就是用机器代替人眼来做测量和判断.它是一项综合技术,包括图像处理.机械工程技术.控制.电光源照明.光学成像.传感器.模拟与数字视频技术.计算 ...

  5. python人头识别_python+opencv实现人头检测

    python+opencv实现人头检测 python+opencv实现人头检测 前段时间琢磨了下人头检测这个功能,现在有了初步的认知和体会,下面开始讲下我在实现人头检测过程中遇到的坑和解决方法. 环境 ...

  6. Python OpenCV 图像处理之 图像运算和图像位运算知识补充

    Python OpenCV 365 天学习计划,与橡皮擦一起进入图像领域吧.本篇博客是这个系列的第 51 篇. 该系列文章导航参考:https://blog.csdn.net/hihell/categ ...

  7. python数据挖掘视频_python+opencv实时视频目标检测

    python+opencv实时视频目标检测 opencv环境 1.访问Python Extension Packages for Windows,下载python对应版本的opencv. 比如小编下载 ...

  8. python图像轮廓识别_Python+OpenCV图像处理(十六)—— 轮廓发现

    简介:轮廓发现是基于图像边缘提取的基础寻找对象轮廓的方法,所以边缘提取的阈值选定会影响最终轮廓发现结果. 代码如下: importcv2 as cvimportnumpy as npdefcontou ...

  9. python 图像变化检测_Python OpenCV 霍夫(Hough Transform)直线变换检测原理,图像处理第 33 篇博客...

    Python OpenCV 365 天学习计划,与橡皮擦一起进入图像领域吧.本篇博客是这个系列的第 33 篇. 基础知识铺垫 霍夫变换(Hough Transform)是图像处理领域中,从图像中识别几 ...

最新文章

  1. QT学习笔记(-): 利用QHttp进行http下载(1)
  2. 【CTF大赛】陇剑杯-机密内存-解题过程分析
  3. (转载)一套完整的UI设计规范手册(IOS版)
  4. Android Studio 生成 ButterKnife 注入的插件
  5. matlab地球卫星模型,地球卫星三维运行轨道MATLAB仿真
  6. Tomcat server.xml配置示例
  7. vue 用key拿对象value_利用 WeakMap 对 Vue 新建数组中的对象赋予 :key
  8. vi-vim :删除、撤销、恢复删除、复制删除
  9. [转载] [Python图像处理] 二十二.Python图像傅里叶变换原理及实现
  10. Zabbix实战-简易教程--WEB类--Nginx
  11. SpringBoot项目优雅的http客户端工具,太香了!
  12. jmeter安装配置
  13. Visual Studio Code 运行html文件右键Open In Other Browsers提示找不到Chrome的解决办法
  14. 【渝粤题库】广东开放大学 质量管理 形成性考核
  15. 用importREC修复Import表
  16. windows 7计算机用户名和密码忘了,w7笔记本忘记开机密码怎么办_win7笔记本电脑忘记登录密码解决方法-系统城...
  17. 2分钟入侵网站全程实录
  18. 3.5吋树莓派显示屏安装设置
  19. 30几个HTML5经典动画应用回顾 让你大饱眼福
  20. vue项目将页面生成pdf

热门文章

  1. 适合 Kubernetes 初学者的一些实战练习 (五)
  2. 什么是 Round trip time RTT
  3. 如何使用 Node.js 访问 SAP HANA Cloud 数据库里的数据
  4. 如何在SAP Spartacus category 页面里拿到当前的category信息
  5. SAP Cloud for Customer Cloud Application Studio的Trace功能
  6. CSS里:focus-within 的作用和用法
  7. TypeScript的class关键字
  8. 如何查询SAP C4C创建日期大于某日的所有lead数据
  9. 使用关键字创建具有局部作用域的JavaScript变量
  10. 因为缺少xs-security.json文件导致的部署错误