上海自助建站工具杭州seo關(guān)鍵字優(yōu)化
👨?💻個人簡介: 深度學(xué)習(xí)圖像領(lǐng)域工作者
🎉工作總結(jié)鏈接:https://blog.csdn.net/qq_28949847/article/details/128552785
???????????? 鏈接中主要是個人工作的總結(jié),每個鏈接都是一些常用demo,代碼直接復(fù)制運(yùn)行即可。包括:
????????????????????📌1.工作中常用深度學(xué)習(xí)腳本
????????????????????📌2.torch、numpy等常用函數(shù)詳解
????????????????????📌3.opencv 圖片、視頻等操作
????????????????????📌4.個人工作中的項(xiàng)目總結(jié)(純干活)
🎉視頻講解: 以上記錄,通過B站等平臺進(jìn)行了視頻講解使用,可搜索 ‘Python圖像識別’ 進(jìn)行觀看
??????????????B站:Python圖像識別
??????????????抖音:Python圖像識別
??????????????西瓜視頻:Python圖像識別
1. img[:, :, ::-1]
img[:, :, ::-1]
是一種常見的圖像操作方式,用于對圖像進(jìn)行水平翻轉(zhuǎn)(即左右翻轉(zhuǎn))、上下翻轉(zhuǎn)、顏色通道轉(zhuǎn)換(BRR–>RGB)。
在Python中,多維數(shù)組可以使用切片語法進(jìn)行索引和切片。對于三維數(shù)組或圖像,第一個維度表示行,第二個維度表示列,第三個維度通常表示顏色通道(例如RGB圖像中的紅、綠、藍(lán)三個通道)。
因此,img[:, :, ::-1]
表示選擇所有行、所有列,并將最后一個維度倒序排列。由于在OpenCV
中,最后一個維度按順序分別代表B、G、R
三個顏色通道,因此將其倒序排列相當(dāng)于將R通道
放在了最前面,即將BGR圖像轉(zhuǎn)換為RGB圖像。
2. ::-1如何更通俗的理解呢
::-1
這個語法可以理解為Python中的切片(slice)語法,用于對序列(例如列表、字符串、多維數(shù)組等)進(jìn)行翻轉(zhuǎn)或截取操作。
具體來說,如果一個切片的形式是start:stop:step,其中start表示起始位置(包括該位置),stop表示終止位置(不包括該位置),step表示步長。如果省略start,默認(rèn)為0;如果省略stop,默認(rèn)為序列長度;如果省略step,默認(rèn)為1。
當(dāng)step
為負(fù)數(shù)
時,表示從右向左遍歷序列,即反向遍歷
。而“::”表示在兩個冒號之間,沒有指定start和stop,因此表示選擇所有元素。最后的“-1”表示逆序遍歷,即從序列末尾開始倒序遍歷。
因此,[::-1]可以理解為對整個序列進(jìn)行倒序遍歷,返回一個新的序列,這個語法常用于反轉(zhuǎn)列表、字符串以及多維數(shù)組的行、列等方向。
對于圖像處理,img[:, :, ::-1]表示對多維數(shù)組的第三個維度(即通道維度)進(jìn)行逆序遍歷,將BGR順序變成RGB順序,從而實(shí)現(xiàn)圖像色彩通道的轉(zhuǎn)換。
3. 示例
import cv2img = cv2.imread(r'002344348659-90_84-429&369_530&406-525&405_425&398_428&364_528&371-0_0_17_26_30_24_8-105-11.png')cv2.imshow('img', img)# b g r --> r g b
RGB = img[:, :, ::-1]# 左右顛倒
l_r = img[:, ::-1, :]# 上下顛倒
u_d = img[::-1, :, :]cv2.imshow('RGB', RGB)
cv2.imshow('l_r', l_r)
cv2.imshow('u_d', u_d)
cv2.waitKey(0)
示例效果: