Python圖像處理--OpenCV基本操作

引言:因爲我用的pycharm,所以要先引入cv2庫,若引入不成功就引入opencv-python

一、讀入圖像

使用函數cv2.imread(filepath,flags)讀入一副圖

  •      filepath:要讀入圖片的完整路徑
    • flags:讀入圖片的標誌 
      • cv2.IMREAD_COLOR:默認參數,讀入一副彩色圖片,忽略alpha通道 也可以以1指定
      • cv2.IMREAD_GRAYSCALE:讀入灰度圖片 也可以以0指定
      • cv2.IMREAD_UNCHANGED:顧名思義,讀入完整圖片,包括alpha通道
import cv2
#1的話讀取全綵圖片 0讀取灰度圖片即黑白圖片
img = cv2.imread('king.jpg', 1)
img1 = cv2.imread('king.jpg', 0)

 

二、顯示圖像

使用函數cv2.imshow(wname,img)顯示圖像,第一個參數是顯示圖像的窗口的名字,第二個參數是要顯示的圖像(imread讀入的圖像),窗口大小自動調整爲圖片大小

tips:要注意的是需要讓程序暫停,否則圖片會一閃而過,你不會觀察到圖片:

import cv2
img = cv2.imread('king.jpg',1)
'''通過窗口展示圖片 第一個參數爲窗口名 第二個爲讀取的圖片變量'''
cv2.imshow('image',img)
'''暫停cv2模塊 不然圖片窗口一瞬間即就會消失 觀察不到'''
cv2.waitKey(0)

三、保存圖像

使用函數cv2.imwrite(file,img,num)保存一個圖像。第一個參數是要保存的文件名,第二個參數是要保存的圖像。可選的第三個參數,爲寫入圖片的質量。

import cv2
'''在寫入圖片是時也可以設置寫入的新圖片的質量'''
'''
對於JPG格式的圖片來說:IMWRITE_JPEG_QUALITY的取值範圍爲0-100 這是寫入jpg格式 數值越小 壓縮比越高 圖片失真嚴重
下面來看寫入png格式的圖片
對於png格式來說參數爲IMWRITE_PNG_COMPRESSION 取值範圍爲0-50
但他的數值越小 壓縮比越低 圖片質量寫入較高 與寫入jpg格式恰好相反
'''
img = cv2.imread('king.jpg',1)
cv2.imwrite('king1.jpg',img,[cv2.IMWRITE_JPEG_QUALITY,0])
img = cv2.imread('king.jpg',1)
cv2.imwrite('king2.png',img,[cv2.IMWRITE_PNG_COMPRESSION,0])

四、操作像素給圖片畫線:

import cv2
'''讀取圖片'''
img = cv2.imread("king.jpg", 1)
(b, g, r) = img[100, 100]
print(b, g, r)
'''我們通過操作像素來在圖片中畫一條豎直紅色的線'''
for i in range(1, 100):
    img[10+i, 110] = (0, 0, 255)#改變圖片原來的像素
cv2.imshow('image', img)#打開一個名爲image的窗口來顯示操作後圖片
'''暫停程序 以方便來觀看圖片 不然會一閃而過'''
cv2.waitKey(0)

五、讀入一張圖片,並加入文本內容:

import cv2
img = cv2.imread('king.jpg', 1)    # 打開文件
font = cv2.FONT_HERSHEY_DUPLEX  # 設置字體
# 圖片對象、文本、像素、字體、字體大小、顏色、字體粗細
imgzi = cv2.putText(img, "SKH", (100, 164), font, 3.5, (0, 0, 255), 2,)
cv2.imshow('skh', imgzi)
cv2.waitKey(0)

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章