文章目录

  • 1.相加
  • 2.减法
  • 3.乘法
  • 4.除法

1.相加

代码实战

import os
import cv2
import numpy as np#读取图片和缩放图片
lenna=cv2.imread('images/lenna.png')
lenna=cv2.resize(src=lenna,dsize=(450,450))
#创建相同尺寸的图片
npimg=np.ones(shape=(lenna.shape[0],lenna.shape[1],lenna.shape[2]),dtype=np.uint8)*100#两张图片进行与运算
dst=cv2.add(src1=lenna,src2=npimg)
#显示图片
cv2.imshow('lenna',lenna)
cv2.imshow('dst',dst)
cv2.waitKey(0)
cv2.destroyAllWindows()if __name__ == '__main__':print('Pycharm')


可以看到最终得到的图类似曝光。


2.减法

def Subtract():# 读取图片和缩放图片lenna = cv2.imread('images/lenna.png')lenna = cv2.resize(src=lenna, dsize=(450, 450))# 创建相同尺寸的图片npimg = np.ones(shape=(lenna.shape[0], lenna.shape[1], lenna.shape[2]), dtype=np.uint8) * 100# 首先两张图片进行加法运算dst = cv2.add(src1=lenna, src2=npimg)#将进行加法之后的图像再进行减法操作,还原回原图original=cv2.subtract(src1=dst,src2=npimg)print("原图中最大像素值: {}".format(lenna.max()))print('相加之后的最大像素值: {}'.format(dst.max()))print('相减之后的最大像素值: {}'.format(original.max()))# 显示图片cv2.imshow('lenna', lenna)cv2.imshow('dst', dst)cv2.imshow('original',original)cv2.waitKey(0)cv2.destroyAllWindows()


print("原图中最大像素值: {}".format(lenna.max()))
print('相加之后的最大像素值: {}'.format(dst.max()))
print('相减之后的最大像素值: {}'.format(original.max()))

可以看到原图中的最大像素值为255,而相加之后的最大像素值肯定也为255;但是假设原图中有一个像素值为160的,首先加上100之后,那么像素值变为255(因为超过了255,所以只能为255),那么在相减的时候,这个像素值变为了155,和原来的160相比减小了,所以就算原来的图先加后减,图像一般也会变的稍微暗一点。


3.乘法

def mutilpImg():# 读取图片和缩放图片lenna = cv2.imread('images/lenna.png')lenna = cv2.resize(src=lenna, dsize=(450, 450))# 创建相同尺寸的图片npimg = np.ones(shape=(lenna.shape[0], lenna.shape[1], lenna.shape[2]), dtype=np.uint8) * 100#进行乘积dst=cv2.multiply(src1=lenna,src2=npimg)# 显示图片cv2.imshow('lenna', lenna)cv2.imshow('dst', dst)cv2.waitKey(0)cv2.destroyAllWindows()

为什么输出的为大部分为白色了,是因为相乘之后很多像素值都大于了255,所以最后的结果就是255,也就是导致图像很多地方都是白色的。


4.除法

def DividImg():# 读取图片和缩放图片lenna = cv2.imread('images/lenna.png')lenna = cv2.resize(src=lenna, dsize=(450, 450))# 创建相同尺寸的图片npimg = np.ones(shape=(lenna.shape[0], lenna.shape[1], lenna.shape[2]), dtype=np.uint8) * 100# 进行乘积dst = cv2.divide(src1=lenna, src2=npimg)# 显示图片cv2.imshow('lenna', lenna)cv2.imshow('dst', dst)cv2.waitKey(0)cv2.destroyAllWindows()

print(“原图中最大像素值: {}”.format(lenna.max()))
print(“除法之后最大像素值: {}”.format(dst.max()))

可以看到原图中的最大像素值为255,而原图中所有的像素值都除了100之后,那么最后的结果只能是<=3,所以看起来是黑色的。

Opencv中的图像相加,相减,相除,相乘(python实现)相关推荐

  1. Python,OpenCV中的图像修复——cv2.inpaint()

    Python,OpenCV中的图像修复--cv2.inpaint 1. 效果图 2. 原理 3. 源码 参考 image inpainting 图像修改 这篇博客将介绍如何通过OpenCV中图像修复的 ...

  2. opencv 锐化 java_如何在OpenCV中锐化图像?

    如何在OpenCV中锐化图像? 如何使用OpenCV锐化图像? 有许多平滑或模糊的方法,但没有我能看到的锐化. 7个解决方案 147 votes 关于反锐化掩蔽的维基百科文章中列出了一个通用程序:您使 ...

  3. OpenCV中的图像阈值处理算法

    简 介: 本文讨论了如何通过图像阈值算法来对图像中特点对接进行隔离. 演示了几种不同的阈值分割(全局阈值分割)算法的结果.对于最简单的阈值算法,通过改变其中的阈值可以获得不同的分割效果. 关键词: 阈 ...

  4. OpenCV中Mat,图像二维指针和CxImage类的转换

    在做图像处理中,常用的函数接口有OpenCV中的Mat图像类,有时候需要直接用二维指针开辟内存直接存储图像数据,有时候需要用到CxImage类存储图像.本文主要是总结下这三类存储方式之间的图像数据的转 ...

  5. OpenCV中的图像金字塔(高斯金字塔、拉普拉斯金字塔)

    最近在看关于数字图像的知识点,目前在图像金字塔部分,实在是懒得用手作笔记了,就以其中比较出名的"高斯金字塔"和"拉普拉斯金字塔"为例,基于OpenCV的源代码作 ...

  6. OpenCV中的图像数据格式CV_8U定义

    今天在对 16 位的深度图提取 HOG 特征时,遇到了以下问题: 代码如下: import cv2 import numpy as npreff_image = cv2.imread(os.path. ...

  7. OpenCV中的图像处理中

    图像金字塔 一般情况下,我们要处理是一副具有固定分辨率的图像.但是有些情况下,我们需要对同一图像的不同分辨率的子图像进行处理.比如,我们要在一幅图像中查找某个目标,比如脸,我们不知道目标在图像中的尺寸 ...

  8. OpenCV中对图像数据进行64F和8U转换的方法

    图像处理开发需求.图像处理接私活挣零花钱,请加微信/QQ 2487872782 图像处理开发资料.图像处理技术交流请加QQ群,群号 271891601 在OpenCV中很多对数据的运算都需要转换为64 ...

  9. python两两组合_求数组中两两相加等于20的组合(Python实现)

    题目 求数组中两两相加等于20的组合. 例:给定一个数组[1, 7, 17, 2, 6, 3, 14],这个数组中满足条件的有两对:17+3=20, 6+14=20. 解析 分为两个步骤: 先采用堆排 ...

最新文章

  1. 最新通知!多所高校明确:开学上网课!
  2. repmat--矩阵的复制和平铺
  3. 深入理解volatile
  4. 【年终总结】有三AI至今在人脸图像算法领域都分享了哪些内容?
  5. 科大星云诗社动态20211202
  6. VTK:Shaders之BozoShader
  7. 我的win7黑屏解决方案
  8. .NET应用迁移到.NET Core(一)
  9. 计算机修改文字试题,计算机文字处理试题.doc
  10. 库克:苹果商店收取30%佣金是应该的
  11. linux sed保存,linux sed
  12. 原始的Ajax请求方式 (XMLHttpRequest)
  13. nodejs 实现 磁力链接资源搜索 BT磁力链接爬虫
  14. 酷派5890刷recovery详细教程
  15. dota2自走棋 服务器没响应,dota2自走棋国服务器
  16. AutoCAD2014注册机使用说明
  17. 2018-2019-2 20189215 《网络攻防技术》第八周作业
  18. Vue实现轮播的方法
  19. android studio调用python_Android Studio调用python运行thensorflow模型--CLE方案实现
  20. 反恐精英代码_游戏《反恐精英:全球攻势》《军团要塞2》源代码遭泄露

热门文章

  1. 究极摸鱼挂科王终于击败了无敌可怕Vulkan大魔王
  2. 大数据技术之Structured Steaming课程
  3. Parallels Desktop 16 已损坏,无法打开,您应该推出磁盘映像。怎么解决?
  4. adb查看手机设备型号、品牌、机型等信息
  5. h5页面定位偏移的问题--解答
  6. Contiki学习笔记——Cooja启动失败
  7. 大数据技术怎么自学?大数据开发如何自学?
  8. vue开发的网站做seo优化的方法
  9. 百度搜索引擎结果网址参数键盘重复速度(rsv_sug3)
  10. C#实现上位机与PLC通信