前言
本篇博客介绍在vscode中使用opencv进行图像处理的基本操作,使用的语言为python,vscode中按照python可以参考我以前写的这篇博客:vscode中配置python环境
至于在vscode导入opencv包就请各位自行百度解决(其实是我忘记当初怎么装的了 )。
1.图像直方图
1.1.原理
谈到图像处理就不得不提图像直方图,一般来说,图像直方图是指灰度直方图,即图像通过灰度变换后得到的灰度图像的像素值的分布。
灰度图像图是只针对灰度图像,平常接触的彩色图像都是由三个灰度图像(Red,Green,Blue)叠加而成,可以说每个灰度图像都有自己的灰度直方图。
那么这个直方图有什么用呢,从表面来看,直方图可以直观地表示这幅图像像素点的分布情况,可以很明显的看出一幅图像的明暗程度,缺点也很明显,丢失了图像的图片特征和方向。
不过在谈到一幅图像的直方图都是指这张彩色图像的灰度直方图,这就需要将三张灰度图像化成一张,这里我采用opencv中的cvtColor函数来进行灰度化。
1.2.结果演示
这是我用手机拍的学校图片。
为什么是晚上呢,因为白天拍的照片大小超标了,越亮的照片像素值越高,所占的容量也越大,所以从目前来看,这张图片的直方图应该是偏左边(即靠近原点)的。让我们来测试看看。
from cv2 import waitKey
import numpy as np
import matplotlib.pyplot as plt
import cv2
img=cv2.imread('D:\\vscode\\python\\test1.jpg')
#cvtColor函数(变换对象,转换系数),COLOR_BGR2GRAY的公式为Gray = 0.1140*R + 0.5870*G + 0.2989*B
img=cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
#额外命