日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

8.openCV 裁剪图像

發(fā)布時(shí)間:2024/3/13 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 8.openCV 裁剪图像 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

8.openCV 裁剪圖像

  • 一、使用 OpenCV 裁剪圖像
  • 二、項(xiàng)目結(jié)構(gòu)和代碼講解
    • 1.項(xiàng)目結(jié)構(gòu)
    • 2.代碼講解
  • 三、代碼下載

一、使用 OpenCV 裁剪圖像

在本教程的第一部分,我們將討論如何將 OpenCV 圖像表示為 NumPy 數(shù)組。由于每個(gè)圖像都是一個(gè) NumPy 數(shù)組,我們可以利用 NumPy 數(shù)組切片來(lái)裁剪圖像。

使用 OpenCV 和 NumPy 數(shù)組切片理解圖像裁剪


當(dāng)我們裁剪圖像時(shí),我們想要移除我們不感興趣的圖像的外部部分。我們通常將此過(guò)程稱為選擇我們的興趣區(qū)域,或者更簡(jiǎn)單地說(shuō),我們的 ROI。

我們可以通過(guò)使用 NumPy 數(shù)組切片來(lái)完成圖像裁剪。

讓我們首先初始化一個(gè)NumPy列表,其值范圍為[ 0,24 ]:
現(xiàn)在讓我們將這個(gè) 1D 列表重塑為一個(gè) 2D 矩陣,假裝它是一個(gè)圖像:

現(xiàn)在,假設(shè)我要提取從x = 0,y = 0到x = 2,y = 3的“像素” 。這樣做可以使用以下代碼完成:

注意我們是如何提取三行 ( y = 3 ) 和兩列 ( x = 2

現(xiàn)在,讓我們提取從x = 1、y = 3開(kāi)始到x = 5和y = 5結(jié)束的像素


此結(jié)果提供圖像的最后兩行,減去第一列。

你注意到這里的一個(gè)模式了嗎?

將 NumPy 數(shù)組切片應(yīng)用于圖像時(shí),我們使用以下語(yǔ)法提取 ROI:

roi = image[ startY : endY , startX : endX ]

這startY : endY 提供我們numpy數(shù)組中的的行(因?yàn)閥軸是我們的行數(shù))而 startX : endX 提供圖像numpy數(shù)組中的列(因?yàn)閤軸是列數(shù))

看到這里如果不太明白,建議去看一篇numpy數(shù)組切片的博文: 點(diǎn)此鏈接.去理解數(shù)組切片!

二、項(xiàng)目結(jié)構(gòu)和代碼講解

通過(guò)博文末尾或此處的的代碼下載.
下載本博文對(duì)應(yīng)的代碼項(xiàng)目,以下是下載解壓后的

1.項(xiàng)目結(jié)構(gòu)


我們今天只有一個(gè) Python 腳本, opencv_crop.py,這將加載輸.png 圖像,然后使用 NumPy 數(shù)組切片從圖像中裁剪出面部和身體。

2.代碼講解


第 2 行和第 3 行導(dǎo)入我們需要的 Python 包,而第 6-9 行解析我們的命令行參數(shù)。

我們只需要一個(gè)命令行參數(shù), - 圖像,這是我們希望裁剪的輸入圖像的路徑。對(duì)于這個(gè)例子,我們將默認(rèn)- 圖像 .png 文件在我們的項(xiàng)目目錄中。
接下來(lái),讓我們從磁盤(pán)加載我們的圖像:

第 12 和 13 行圖像 然后將其顯示到我們的屏幕上:
我們的目標(biāo)是使用簡(jiǎn)單的裁剪方法從該區(qū)域中提取臉和身體。

我們通常會(huì)應(yīng)用物體檢測(cè)技術(shù)來(lái)檢測(cè)圖像中我的臉和身體。然而,由于我們?cè)?OpenCV 教育課程中還處于早期階段,我們將使用我們對(duì)圖像的先驗(yàn)知識(shí)并手動(dòng)提供身體和面部所在的 NumPy 數(shù)組切片。

同樣,我們當(dāng)然可以使用對(duì)象檢測(cè)方法從圖像中自動(dòng)檢測(cè)和提取人臉

我們用一行代碼(第 20 行)從圖像中提取我的臉。

我們提供 NumPy 數(shù)組切片來(lái)提取圖像的矩形區(qū)域,從(85, 85)開(kāi)始到(220, 250)結(jié)束。

我們?yōu)樽魑锾峁┧饕捻樞蚩赡芸雌饋?lái)違反直覺(jué);但是,請(qǐng)記住,OpenCV 將圖像表示為 NumPy 數(shù)組,高度在前(行數(shù)),寬度在后(列數(shù))。

為了執(zhí)行我們的裁剪,NumPy 需要四個(gè)索引:

  • 起始y:起始y坐標(biāo)。在這種情況下,我們從y = 85開(kāi)始。
  • End y : 結(jié)束y坐標(biāo)。我們將在y = 250處結(jié)束我們的作物。
  • 起始x:切片的起始x坐標(biāo)。我們?cè)趚 = 85處開(kāi)始裁剪。
  • End x:切片的結(jié)束x軸坐標(biāo)。我們的切片在x = 220處結(jié)束。
    我們可以在下面看到裁剪臉的結(jié)果:

同樣,我們可以從圖像中裁剪身體
裁剪身體是通過(guò)從原始圖像的坐標(biāo)(0, 90)開(kāi)始裁剪到(290, 450)結(jié)束來(lái)完成的。

您可以在下面看到使用 OpenCV 進(jìn)行裁剪的輸出:


運(yùn)行代碼

三、代碼下載

代碼下載.

總結(jié)

以上是生活随笔為你收集整理的8.openCV 裁剪图像的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。