日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

python?OpenCV?圖像通道數判斷_python

作者:淺若清風cyf? ? 更新時間: 2022-06-15 編程語言

前言

OpenCV是圖像處理常用的庫,作為初學者,往往從圖片的讀取、保存、查詢圖片的信息開始,下面將分享Python下OpenCV的一些基本使用方法,掌握這些基本方法后,能夠更好地與matplotlib、numpy等結合使用,完成相應的圖像操作。

教程

1、讀取/保存圖片

1)imread和imwrite方法

注:此方法遇到中文路徑會報錯!

import cv2

# 參數1:文件路徑
# 參數2:讀取方式
# 常用幾種模式:
# 	灰度圖:cv2.IMREAD_GRAYSCALE
#	BGR三通道彩色圖:cv2.IMREAD_COLOR
#	原始通道(自動判斷:單通道/三通道/四通道等):cv2.IMREAD_UNCHANGED
img = cv2.imread('圖像文件路徑(全英文)', cv2.IMREAD_COLOR)

# 參數1:文件路徑
# 參數2:待保存的圖像(BGR格式的uint8 ndarray類型)
# 參數3【可選】:壓縮模式以及質量等
# 常用幾種模式:
# 	灰度圖:cv2.IMREAD_GRAYSCALE
#	BGR三通道彩色圖:cv2.IMREAD_COLOR
#	原始通道(自動判斷:單通道/三通道/四通道等):cv2.IMREAD_UNCHANGED
img_saved = cv2.imwrite('圖像輸出路徑(含圖像名)', img)

2)imdecode和imencode方法

import cv2
import numpy as np

# cv2.imdecode():從指定的內存緩存中讀取數據,并把數據轉換成圖像格式
src_img_path = './image.png'
img=cv2.imdecode(np.fromfile(src_img_path, dtype=np.uint8),cv2.IMREAD_UNCHANGED)

# cv2.imencode():將圖片格式轉換成流數據,寫入內存緩存中,可以再調用.tofile()寫入到磁盤中
out_img_path = './image.jpg'
extension = '.jpg'
cv2.imencode(extension,img)[1].tofile(out_img_path)

2、編碼轉換

1)BGR轉RGB

matplotlib.pyplot的imshow()方法廣泛用于顯示圖像,然而opencv默認加載的圖像時BGR格式,直接顯示會出現顏色異常,需要先進行轉換

img_rgb = cv2.cvtColor(img,cv2.COLOR_BGR2RGB)

2)BGR轉GRAY

三通道的BRG彩色圖像轉換成單通道的灰度圖

img_gray=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)

3、快速判斷圖像是否單通道灰度圖

if img.ndim == 2:
	print('圖像是單通道灰度圖')
else:
	print('圖像包含多個通道')

4、獲取圖像通道數

def get_n_channel(img):
	if img.ndim == 2:
		print('通道數:1')
		return 1
	else:
		print('圖像包含多個通道')
		return img.shape[2]

原文鏈接:https://juejin.cn/post/7082938938104479751

欄目分類
最近更新