python--openCV

安装 pip3 install opencv-python   

import cv2    #导入opencv库
import numpy as np

img = cv2.imread("ma.jpg")  #读取一张图片,地址不能带中文
"""
第二个参数,取值可为:
cv2.IMREAD_COLOR:默认参数,读入一副彩色图片,忽略alpha通道
cv2.IMREAD_GRAYSCALE:读入灰度图片
cv2.IMREAD_UNCHANGED:读入完整图片,包括alpha通道(png有,jpg无)
"""

img1 = cv2.imread("ma.jpg",cv2.IMREAD_GRAYSCALE)
cv2.namedWindow("new window")  #创建一个窗口,中文显示会出乱码
    #参数 窗口标题

cv2.imshow("new window", img1)   #显示图片
    #参数1:窗口标题--不能是Pyqt的窗口;如果找不到参数1的窗口就新建一个
    #imread读入的图像

cv2.imshow("new", img)

print(img.shape)    #输出:(452, 400, 3) 高像素,宽像素,通道数(一个像素有三个通道RGB)
print(img.size)   # 542400  总通道数=高* 宽* 通道数
print(img.dtype)# uint8  3个通道每个通道占的位数(8位,一个字节)
#print(img)  #输出每个像素点的参数( B , G , R )
#print(np.array(img)) #输出每个像素点的参数( B , G , R )
print(cv2.mean(img))   #获取图片 B G R 各个均值
#(210.87173119469026, 222.68342920353982, 228.77969579646017, 0.0)
#而pixel mean的话,其实是图片的所有R通道像素,求了均值,G,B通道类似,所以求出来就是三个数值(R_mean,G_mean,B_mean)

print(cv2.meanStdDev(img))  #获取均值和方差,可用均值方差都为零判断图片无效
#(array([[210.87173119],[222.6834292 ],[228.7796958 ]]), array([[67.49584092],[54.39694368],[46.32777341]]))
#array([[210.87173119],[222.6834292 ],[228.7796958 ]])  是B G R 各个均值
#array([[67.49584092],[54.39694368],[46.32777341]])  是方差
#方差的概念:https://wenku.baidu.com/view/474731e31b37f111f18583d049649b6648d709d4.html

img2=img.copy()  #复制图片
cv2.imshow("fuzi", img2)


cv2.waitKey(5000)  #窗口等待任意键盘按键输入,0为一直等待,其他数字为毫秒数

cv2.destroyAllWindows()   #销毁窗口,退出程序

猜你喜欢

转载自www.cnblogs.com/liming19680104/p/12073623.html
今日推荐