python--openCV--圖像處理


安裝 pip3 install opencv-python  

 

圖像處理:

import cv2    #導入opencv庫
import numpy as np

img = cv2.imread("ma.jpg")  #讀取一張圖片,地址不能帶中文
"""
第二個參數,取值可為:
cv2.IMREAD_COLOR=1:默認參數,讀入一副彩色圖片,忽略alpha通道
cv2.IMREAD_GRAYSCALE=0:讀入灰度圖片
cv2.IMREAD_UNCHANGED=-1:讀入完整圖片,包括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)
# 灰度圖由於沒有顏色通道,使用shape屬性返回的是(圖像的高度,圖像的寬度)。
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() #銷毀窗口,退出程序
cv2.namedWindow("operation", cv2.WINDOW_AUTOSIZE)  #創建窗口--方式一
#cv2.namedWindow('image',cv2.WINDOW_AUTOSIZE)  #創建窗口--方式二
#cv2.WINDOW_NORMAL  窗口大小可以改變
#cv2.WINDOW_AUTOSIZE   窗口大小不可以改變
#cv2.WINDOW_FREERATIO  窗口大小自適應比例
#cv2.WINDOW_KEEPRATIO  窗口大小保持比例
#cv2.WINDOW_GUI_EXPANDED  顯示色彩變成暗色

cv2.imwrite("2.jpg",img)     # 存儲圖片

參數1 文件名

參數2 圖片(圖片矩陣數據)

參數3 可選參數,可以指定使用特定格式編碼保存的參數,一般情況下我們很少用到

 

img = 255*np.ones((240,480,3),np.uint8)  #自定義一張彩色圖像
#240 高;480 寬;3 通道數

 

 

img = 255*np.ones((240,480,3),np.uint8)  #自定義一張彩色圖像
#240 高;480 寬;3 通道數


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM