numpy 图片填充_使用Numpy+OpenCV来增强灰度图像

本文介绍了如何使用Numpy和OpenCV通过最大值和最小值滤波手动去除灰度图像中的阴影。首先,根据图像背景是亮还是暗选择滤波顺序。然后,实现最大值和最小值滤波函数,最后通过背景减法进行归一化,得到去阴影的图像。
摘要由CSDN通过智能技术生成

在日常生活中,我们经常会扫描纸张把它们转换成图像,但这些图像往往存在阴影,我们有各种各样的工具可以在线增强这些图像,使它们的亮度更亮,并消除这些图像中的阴影。那有没有方法可以手动去除阴影呢?比如我们可以将任何图像作为灰度图像加载到我们的代码中,并在几秒钟内获得输出,而无需任何应用程序的帮助。

这是可以通过使用基本的Numpy操作和一些openCV函数来实现。我们使用了下面的图片作为例子,它是用手机拍的。

很明显,它有一个阴影需要删除。

将必要的软件包导入你的环境。为了易于显示图像,我们使用Jupyter Notebook。

import cv2

import numpy as np

import matplotlib.pyplot as plt

删除阴影时,有两件事要注意。(1)由于图像是灰度图像,如果图像背景较浅且对象较暗,则必须先执行最大值滤波,然后再执行最小值滤波;(2)如果图像背景较暗且物体较亮,我们可以先执行最小值滤波,然后再进行最大值滤波。

那么,最大值滤波和最小值滤波到底是什么呢?

3.最大值滤波:假设我们有一个特定大小的图像 I ,我们编写的算法应逐个遍历 I 的像素,并且对于每个像素(x,y)都必须找到该像素周围的邻域(大小为N x N的窗口)中的最大灰度值,并将该最大灰度值写入A中相应的像素位置(x,y),所得图像 A 称为输入图像 I 的最大值滤波图像。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值