OpenCV 指南2:如何在圖像中進(jìn)行邊緣檢測(cè)?
3)如何在圖像中執(zhí)行顏色空間?
我們知道,每一種顏色都是紅、綠、藍(lán)三種顏色的組合。所以我們通常將顏色空間稱(chēng)為RGB,如果我們分析圖像和視頻也是如此。但是在 OpenCV 中,顏色空間是相反的順序,即 BGR。查看下面提到的代碼,我們將在其中使用 OpenCV 和 matplotlib 顯示圖像并觀察更改。cv2_imshow(Org_img)
plt.imshow(Org_img)
使用 OpenCV 的 BGR 圖像:

我們將嘗試使用 matplotlib 繪制相同的圖像

所以這里我們觀察到,由于從 BGR 到 RGB 的顏色空間發(fā)生了變化,因此顏色發(fā)生了反向變化。現(xiàn)在我們將查看如何使用 cv.cvtColor() 方法將 BGR 顏色空間轉(zhuǎn)換為不同的顏色空間3.1)BGR轉(zhuǎn)灰色# BGR to Gray
BGR_Gray=cv.cvtColor(Org_img,cv.COLOR_BGR2GRAY)
cv2_imshow(BGR_Gray)
輸出:

3.2) BGR 到 HSV:print("")
#BGR to HSV
BGR_HSV=cv.cvtColor(Org_img,cv.COLOR_BGR2HSV)
cv2_imshow(BGR_HSV)
輸出:

3.3) BGR 到 LAB:print("")
#BGR to LAB
BGR_LAB=cv.cvtColor(Org_img,cv.COLOR_BGR2LAB)
cv2_imshow(BGR_LAB)
輸出:

3.4)BGR轉(zhuǎn)RGB:print("")
#BGR to RGB
BGR_RGB=cv.cvtColor(Org_img,cv.COLOR_BGR2RGB)
cv2_imshow(BGR_RGB)
輸出:

我們還可以使用下面提到的顏色空間參數(shù)來(lái)反轉(zhuǎn)上面提到的圖像顏色空間:cv.COLOR_HSV2BGRcv.COLOR_LAB2BGRcv.COLOR_Gray2BGRcv.COLOR_BGR2RGB4)如何處理顏色通道?在OpenCV 中,我們可以從原始圖像中分離 B、G、R 通道,然后再次合并所有 B、G、R,如下所示。Org_img=cv.imread("/content/drive/MyDrive/Colab Notebooks/Opencv/NCS/erik-mclean-jhNwxqL51xc-unsplash.jpg")
cv2_imshow(Org_img)
Canny_img=cv.Canny(Org_img,100,150)
B,G,R=cv.split(Org_img)
cv2_imshow(B)
print("")
cv2_imshow(G)
print("")
cv2_imshow(R)
print("")
print("Shape of the original BGR image: ",Org_img.shape)
print("Shape of the Blue Pixel image post split from original image: ",B.shape)
print("Shape of the Green Pixel image post split from original image: ",G.shape)
print("Shape of the Red Pixel image post split from original image: ",R.shape)
print("")
print("Merged image of the BGR images is: ")
print("")
Merged_BGR=cv.merge([B,G,R])
cv2_imshow(Merged_BGR)
上述代碼的輸出:原圖:

帶有藍(lán)色像素的圖像:

帶有綠色像素的圖像:

帶有紅色像素的圖像:

合并所有三個(gè) BGR 頻道的圖片發(fā)布:

上述分割圖像以灰色圖像的形式反映,因此為了清楚了解每個(gè)通道,我們將嘗試在空白屏幕上繪制此分割圖像,然后查看通道。現(xiàn)在,我們將 B、G、R 像素與空白圖像分開(kāi)使用,我們得到了下面的輸出:print(" Printing the BGR images on the blank images")
blank=np.zeros(((Org_img.shape[0],Org_img.shape[1])),dtype='uint8')
Merged_B=cv.merge([B,blank,blank])
cv2_imshow(Merged_B)
print("")
Merged_G=cv.merge([blank,G,blank])
cv2_imshow(Merged_G)
print("")
Merged_R=cv.merge([blank,blank,R])
cv2_imshow(Merged_R)
上述代碼的輸出:藍(lán)色通道:

綠色通道:

紅色通道:

5)如何模糊圖像?
有不同的方法來(lái)模糊圖像。查看下面提到的代碼演練以獲取詳細(xì)信息:平均模糊:在這里,我們將輸入原始圖像并與內(nèi)核進(jìn)行卷積。隨著內(nèi)核大小的增加,圖像的模糊度也會(huì)增加。高斯模糊:在這里,我們將輸入原始圖像并與內(nèi)核進(jìn)行卷積。隨著內(nèi)核大小的增加,圖像的模糊度也會(huì)增加。
我們還應(yīng)該指定 X 和 Y 方向的標(biāo)準(zhǔn)偏差,分別為 sigmaX 和 sigmaY。如果只指定了 sigmaX,則 sigmaY 與 sigmaX 相同。如果兩者都為零,則根據(jù)內(nèi)核大小計(jì)算它們。高斯模糊對(duì)于從圖像中去除高斯噪聲非常有效。中值模糊:函數(shù)cv.medianBlur()取內(nèi)核區(qū)域下所有像素的中值,并將中心元素替換為該中值。這對(duì)于圖像中的椒鹽噪聲非常有效。在這里,我們將輸入原始圖像并與內(nèi)核進(jìn)行卷積。
隨著內(nèi)核大小的增加,圖像的模糊度也會(huì)增加。但是這里的內(nèi)核大小是一維形狀,而不是像平均和高斯那樣的二維形狀。雙邊模糊:cv.bilateralFilter()在保持邊緣銳利的同時(shí)去除噪音非常有效。但與其他過(guò)濾器相比,操作速度較慢。我們已經(jīng)看到高斯濾波器獲取像素周?chē)泥徲虿⒄业狡涓咚辜訖?quán)平均值。這個(gè)高斯濾波器是單獨(dú)的空間函數(shù),即濾波時(shí)考慮附近的像素。
它不考慮像素是否具有幾乎相同的強(qiáng)度。它不考慮像素是否是邊緣像素。所以它也模糊了邊緣,這是我們不想做的。在這里,我們將輸入原始圖像并與內(nèi)核進(jìn)行卷積。隨著內(nèi)核大小的增加,圖像的模糊度也會(huì)增加。但是這里的內(nèi)核大小是 1D 形狀,而不是像平均模糊和高斯模糊那樣的 2D 形狀。此外,為了簡(jiǎn)單起見(jiàn),我們可以將 2 個(gè) sigma 值設(shè)置為相同。Org_img=cv.imread("/content/drive/MyDrive/Colab Notebooks/Opencv/NCS/emma-shappley-S0zmYpRTZbA-unsplash.jpg")
cv2_imshow(Org_img)
print(" Averaging blur image ")
#Averaging
AvgBlur_img=cv.blur(Org_img,(7,7))
cv2_imshow(AvgBlur_img)
print(" Gaussian blur image ")
#Gaussian Blur
GaussBlur_img=cv.GaussianBlur(Org_img,(7,7),0)
cv2_imshow(GaussBlur_img)
print(" Median blur image ")
#MedianBlur
MedianBlur_img=cv.medianBlur(Org_img,7)
cv2_imshow(MedianBlur_img)
print(" Billateral blur image ")
#Billateral Blur
BillateralBlur_img=cv.bilateralFilter(Org_img,5,50,50)
cv2_imshow(BillateralBlur_img)
上述代碼的輸出:原圖:

平均模糊圖像:

高斯模糊圖像:

中值模糊圖像:

雙邊模糊圖像:

發(fā)表評(píng)論
登錄
手機(jī)
驗(yàn)證碼
立即登錄即可訪(fǎng)問(wèn)所有OFweek服務(wù)
還不是會(huì)員?免費(fèi)注冊(cè)
忘記密碼請(qǐng)輸入評(píng)論內(nèi)容...
請(qǐng)輸入評(píng)論/評(píng)論長(zhǎng)度6~500個(gè)字
圖片新聞
-

落地?zé)o錫!京東首個(gè)物流機(jī)器人超級(jí)工廠(chǎng)來(lái)了
-

OpenAI發(fā)布的AI瀏覽器,市場(chǎng)為何反應(yīng)強(qiáng)烈?
-

馬云重返一線(xiàn)督戰(zhàn),阿里重啟創(chuàng)始人模式
-

機(jī)器人奧運(yùn)會(huì)戰(zhàn)報(bào):宇樹(shù)機(jī)器人摘下首金,天工Ultra搶走首位“百米飛人”
-

存儲(chǔ)圈掐架!江波龍起訴佰維,索賠121萬(wàn)
-

長(zhǎng)安汽車(chē)母公司突然更名:從“中國(guó)長(zhǎng)安”到“辰致科技”
-

豆包前負(fù)責(zé)人喬木出軌BP后續(xù):均被辭退
-

字節(jié)AI Lab負(fù)責(zé)人李航卸任后返聘,Seed進(jìn)入調(diào)整期
最新活動(dòng)更多
-
6月30日立即申請(qǐng)?jiān)囉?> 【免費(fèi)試用】旭之源工業(yè)電源一一機(jī)器人的穩(wěn)定“心臟“
-
精彩回顧立即查看>> 【限時(shí)免費(fèi)】物理場(chǎng)仿真助力生物醫(yī)學(xué)領(lǐng)域技術(shù)創(chuàng)新
-
精彩回顧立即查看>> 【直播】 智測(cè)未來(lái)·2026海克斯康春季產(chǎn)品創(chuàng)新日
-
精彩回顧立即查看>> 【線(xiàn)下論壇】新唐科技×芯唐南京 2026 年度研討會(huì)
-
精彩回顧立即查看>> OFweek 2026(第十五屆)中國(guó)機(jī)器人產(chǎn)業(yè)大會(huì)
-
精彩回顧立即查看>> 維科杯· OFweek 2025中國(guó)機(jī)器人行業(yè)年度評(píng)選
推薦專(zhuān)題
-
2 華為,重大突破!
- 1 人形機(jī)器人“第一股”來(lái)了!宇樹(shù)科技即將上會(huì)
- 2 全球股市陷AI獨(dú)大結(jié)構(gòu)性瘋狂
- 3 AI狂歡遇上油價(jià)破百,全球股市還能漲多久? | 產(chǎn)聯(lián)看全球
- 4 DeepSeek融資500億,梁文鋒難逃資本局
- 5 谷歌2026 I/O大會(huì)完整回顧:模型依然重要,但智能體正在接管一切
- 6 全球資本,重倉(cāng)中國(guó)機(jī)器人
- 7 Figure AI 交付突破350臺(tái),陪跑特斯拉會(huì)迎來(lái)iPhone 時(shí)刻嗎?
- 8 “國(guó)產(chǎn)GPU第一股”摩爾線(xiàn)程首季扭虧,但造血能力仍待考驗(yàn)
- 9 Anthropic發(fā)布2028年全球AI領(lǐng)導(dǎo)力的兩種情景報(bào)告
- 10 特斯拉宣布監(jiān)督版FSD登陸中國(guó)?
- 高級(jí)軟件工程師 廣東省/深圳市
- 自動(dòng)化高級(jí)工程師 廣東省/深圳市
- 光器件研發(fā)工程師 福建省/福州市
- 銷(xiāo)售總監(jiān)(光器件) 北京市/海淀區(qū)
- 激光器高級(jí)銷(xiāo)售經(jīng)理 上海市/虹口區(qū)
- 光器件物理工程師 北京市/海淀區(qū)
- 激光研發(fā)工程師 北京市/昌平區(qū)
- 技術(shù)專(zhuān)家 廣東省/江門(mén)市
- 封裝工程師 北京市/海淀區(qū)
- 結(jié)構(gòu)工程師 廣東省/深圳市


分享





