我是靠谱客的博主 明理朋友,最近开发中收集的这篇文章主要介绍如何让图像变亮---OpenCV-Python开发指南(1)图像的基本表示方法图像的两种加法运算“+”与add函数获取一个图像调整图像亮度,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

目录

  • 图像的基本表示方法
  • 图像的两种加法运算
  • “+”与add函数
  • 获取一个图像
  • 调整图像亮度

图像的基本表示方法

在实现图像如何变亮之前,我们需要认识一下图像的基本表示方法。在电脑中,图像被分为3种:二值图像,灰度图像以及彩色图像。

其中二值图像是指仅仅包含黑色和白色两种颜色的图像,比如在程序中,为了表示数字A,我们可以通过如下栅格状排列的数据集来表示,如下图所示:
二值图像
其中0代表黑色,1代表白色,这样我们可以确定我们要显示的内容,不过其没有颜色,也没有深浅,只能显示形状。

第2个种图像就是灰度图像,它可以通过深浅绘制出大致的人物形状,内容样式等等,但其没有颜色。效果与上面一样,只是每一个方块的数值不在是0和1,而是[0,255]。

最后一种是彩色图像,它就是在灰度图像上添加了颜色,虽然也可以用上面的二值图像来表示,但其中的一个方块不是0和1,也不是[0,255],而是[[0,255],[0,255],[0,255]]。这样也就是变成了一个三维的矩阵。

对于图像的基础知识,我们就介绍到这里。下面,我们每篇博文都将是一篇实战与理论的结合,本篇主要讲解图像的加法运算,并实现图像的亮度调节。

图像的两种加法运算

对于图像的处理来说,加法运算都是比较基础的运算。而复杂的图像处理,都是通过这些基础的知识来完成的。所以,对于OpenCV的开篇,我们要详细介绍它的加法运算。

在图像的处理过程中,OpenCV给我们提供了两种对图像的加法运算。一种是通过“+”号直接处理,一种是通过add函数进行处理。

“+”与add函数

在认识“+”运算符之前,我们需要了解一下RGB图像颜色的组成。众所周知,不管是红色,蓝色还是绿色,通过程序设置的最大值就是255。那么现在就有一个棘手的问题,假如加法运算之后,大于255怎么办?

对于“+”运算符来说,如果大于了255,就需要取余数。比如绿色值为222,现在要加55,那么最后值不是277,而是21。

而add函数并不是这样,通过add实现图像的加法运算,没有取余数的说法,凡是加法之后大于255的,统一都设置为255。了解了这些,我们就可以非常灵活的使用加法运算。

获取一个图像

既然了解了图像的加法运算,下面我们就来获取一个图像进行操作,代码如下所示:

import cv2
img = cv2.imread("1.jpg", 1)

这里,我们通过import cv2导入OpenCV库,然后获取图像,这里需要注意第2个参数。博主这里专门列出一个表格方便大家认识第2个参数意义。

数值含义
-1保持原格式不变 (也就是如果是灰度图像那么就是灰度图像,如果是彩色图像,那么就是彩色)
0将图像调整为单通道灰度图像
1将图像调整为3通道BGR图像,这个是more五年值
2当载入图像深度为16位或者32位时,就返回其对应的深度图像;否则,将其转换为8位图像
4以任何可能的颜色格式读取图像
8使用gdal驱动程序加载图像

以上是我们常用到的参数值,当然不仅仅只有这些参数,还有一大堆获取图像后缩小图像大小的参数,感兴趣的可以查询开发文档。

接着,我们将获取的图像显示出来,具体代码如下所示:

import cv2

img = cv2.imread("1.jpg", -1)
cv2.imshow("图片", img)#显示图像,参数1为窗口标题,2为获取的图像,中文乱码后续讲解
cv2.waitKey()#等待用户按下
cv2.destroyAllWindows()#释放所有窗口

上面的注释够详细,这里就不在赘述。运行之后,显示的效果如下所示:
显示图像

调整图像亮度

调整图像亮度我们一般使用add函数,但是为了区分两种加法的区别,我们同时计算并同时显示其图像,具体代码如下所示:

import cv2

img = cv2.imread("1.jpg", -1)
symbol_img=img+img
add_img=cv2.add(img,img)
cv2.imshow("图片1", symbol_img)
cv2.imshow("图片2", add_img)
cv2.waitKey()
cv2.destroyAllWindows()

运行之后,显示的效果如下图所示(左“+”,右add):
对比

其中左边图像大于255的全部取余数,导致本来亮的像素变得更暗了。而右边图像因为使用add函数不用取模,大于255统一赋值为255,所以每个细节都只会比原图更亮。

最后

以上就是明理朋友为你收集整理的如何让图像变亮---OpenCV-Python开发指南(1)图像的基本表示方法图像的两种加法运算“+”与add函数获取一个图像调整图像亮度的全部内容,希望文章能够帮你解决如何让图像变亮---OpenCV-Python开发指南(1)图像的基本表示方法图像的两种加法运算“+”与add函数获取一个图像调整图像亮度所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(64)

评论列表共有 0 条评论

立即
投稿
返回
顶部