最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python圖像處理之圖像增廣算法詳解

 更新時(shí)間:2023年05月12日 14:05:22   作者:夏天是冰紅茶  
圖像增廣算法在計(jì)算機(jī)視覺領(lǐng)域扮演著至關(guān)重要的角色,本文將著重介紹圖像增廣算法中的三個(gè)關(guān)鍵方面:圖像旋轉(zhuǎn)、圖像亮度調(diào)整以及圖像裁剪與拼接,感興趣的可以了解一下

前言

圖像增廣算法在計(jì)算機(jī)視覺領(lǐng)域扮演著至關(guān)重要的角色。隨著深度學(xué)習(xí)的興起,大規(guī)模數(shù)據(jù)集的需求變得更加迫切,而圖像增廣算法可以通過(guò)對(duì)原始圖像進(jìn)行一系列變換,擴(kuò)充數(shù)據(jù)集,從而提升模型的泛化能力和魯棒性。

本文將著重介紹圖像增廣算法中的三個(gè)關(guān)鍵方面:圖像旋轉(zhuǎn)、圖像亮度調(diào)整以及圖像裁剪與拼接。這些算法不僅能夠增加訓(xùn)練數(shù)據(jù)的多樣性,還可以幫助我們解決一些實(shí)際問(wèn)題,例如旋轉(zhuǎn)不變性、光照變化以及物體完整性等。

圖像增廣算法

這里我們將使用一些Python優(yōu)秀的第三方庫(kù)來(lái)完成。在圖像增廣方面,有許多可供選擇的第三方庫(kù),如PIL/Pillow、OpenCV、scikit-image等。而在PyTorch中也提供了一些圖像增廣的函數(shù),雖然圖像增廣算法在PyTorch中也屬于預(yù)處理的一部分,但為了方便起見,我們?nèi)匀贿x擇使用大家較為熟悉的OpenCV庫(kù),而不使用PyTorch。

a.圖像旋轉(zhuǎn)

def Rotated_image(img, angle = 45, scale = 1.0):
    height, width = img.shape[:2]
    center = (width // 2, height // 2)
    matrix = cv2.getRotationMatrix2D(center, angle, scale) #旋轉(zhuǎn)中心,旋轉(zhuǎn)角度,縮放比例
    rotated_image = cv2.warpAffine(img, matrix, (width, height))
    return rotated_image

通過(guò)cv2.getRotationMatrix2D函數(shù)計(jì)算旋轉(zhuǎn)矩陣,然后使用cv2.warpAffine函數(shù)執(zhí)行旋轉(zhuǎn)操作。最后,使用cv2.imshow函數(shù)顯示旋轉(zhuǎn)前后的圖像。 

實(shí)驗(yàn)結(jié)果: 

原始圖片與旋轉(zhuǎn)圖片

b.圖像亮度調(diào)整

def Adjusted_image(img,brightness_factor = 1.5):
    image_float = img.astype(np.float32)
    adjusted_image = image_float * brightness_factor
    # 將圖像像素值限制在[0, 255]范圍內(nèi)
    adjusted_image = np.clip(adjusted_image, 0, 255)
    adjusted_image = adjusted_image.astype(np.uint8)
    return adjusted_image

將圖像轉(zhuǎn)換為浮點(diǎn)型數(shù)據(jù)類型。然后,通過(guò)乘以一個(gè)亮度調(diào)整因子來(lái)調(diào)整圖像的亮度,這里的亮度調(diào)整因子可以根據(jù)具體需求進(jìn)行調(diào)整。接下來(lái),我們使用np.clip函數(shù)將圖像像素值限制在[0, 255]范圍內(nèi),避免溢出。最后,我們將圖像轉(zhuǎn)換回?zé)o符號(hào)8位整數(shù)類型,并顯示調(diào)整后的圖像。

實(shí)驗(yàn)結(jié)果:

原始圖片與亮度調(diào)整圖片

c.圖像裁剪及拼接

裁剪

def Cut_image(image,coordinate, Leath, save=True, saveFile=''):
    x, y=coordinate[0],coordinate[1]
    width, height=Leath[0],Leath[1]
    h, w = image.shape[:2]
    cropped_image = image[y:y + height, x:x + width]
    padded_image = np.full((h, w, 3), 128, dtype=np.uint8)
    x_offset = (w - width) // 2
    y_offset = (h - height) // 2
    padded_image[y_offset:y_offset + height, x_offset:x_offset + width] = cropped_image
    if save:
        cv2.imwrite(saveFile,cropped_image)
    return padded_image

此功能為裁剪圖像并用灰色填充不足的部分。添加了保存功能,默認(rèn)不使用。

實(shí)驗(yàn)結(jié)果:

裁剪圖像并用灰色填充

拼接

def Stitcher_image(image_paths):
    stitcher = cv2.Stitcher_create()
    images = []
    for path in image_paths:
        img = cv2.imread(path)
        if img is not None:
            images.append(img)
    if len(images) < 2:
        print('至少需要兩個(gè)圖像進(jìn)行拼接')
        return
    (status, stitched_image) = stitcher.stitch(images)
    if status == cv2.Stitcher_OK:
        return stitched_image
    else:
        print('圖像拼接失敗')

輸入圖片路徑組成的列表,數(shù)量大于等于2才可進(jìn)行拼接。下圖是經(jīng)過(guò)裁剪后保存的圖片,原圖片似乎因?yàn)檩^小,拼接時(shí)無(wú)法成功,經(jīng)過(guò)放大再裁剪后拼接,實(shí)驗(yàn)成功。

實(shí)驗(yàn)結(jié)果: 

拼接的圖像

實(shí)驗(yàn)分析

實(shí)驗(yàn)圖片:300x300,Leopard_cat.png

本次實(shí)驗(yàn)采用一張300x300大小的梅貍貓圖片進(jìn)行實(shí)驗(yàn),并進(jìn)行了圖像旋轉(zhuǎn)、圖像亮度調(diào)整以及圖像裁剪與拼接,效果均達(dá)到我的預(yù)期,在圖像裁剪的過(guò)程中,因?yàn)榭紤]到做的是數(shù)據(jù)增廣,所以添加了灰度條,保證裁剪后的圖片大小與原始圖片相同;拼接的圖片似乎不能太小,可能會(huì)拼接失敗,本實(shí)驗(yàn)經(jīng)過(guò)圖片進(jìn)行放大后裁剪后拼接,實(shí)驗(yàn)成功。

關(guān)于拼接出現(xiàn)黑邊的分析:

在實(shí)驗(yàn)過(guò)程中,我們注意到拼接后的圖像邊緣可能會(huì)出現(xiàn)一些黑邊。這是由于圖像拼接算法的工作原理所致,它會(huì)嘗試將圖像進(jìn)行平滑過(guò)渡,以便在拼接處產(chǎn)生較少的不連續(xù)性。在一些情況下,這可能會(huì)導(dǎo)致邊緣處的像素值略微偏暗,從而形成黑邊。

雖然這些黑邊可能對(duì)整體圖像的觀感產(chǎn)生一些影響,但通常情況下它們并不會(huì)嚴(yán)重干擾圖像的內(nèi)容。如果你認(rèn)為黑邊對(duì)你的應(yīng)用場(chǎng)景有較大影響,您可以嘗試進(jìn)行后處理來(lái)減輕或消除黑邊的影響。如邊緣增強(qiáng)、圖像修復(fù)或邊緣填充等,來(lái)改善黑邊問(wèn)題。

總的來(lái)說(shuō),盡管在圖像拼接過(guò)程中可能會(huì)出現(xiàn)一些黑邊,但這并不會(huì)嚴(yán)重影響整體的拼接結(jié)果。通過(guò)適當(dāng)?shù)暮筇幚矸椒?,我們可以進(jìn)一步改善圖像的外觀,并獲得更好的拼接效果。

本章小結(jié)

本章介紹了圖像處理中常見的幾種操作:旋轉(zhuǎn)、亮度調(diào)整、裁剪、拼接等。通過(guò)使用OpenCV和NumPy庫(kù)的函數(shù),輕松地實(shí)現(xiàn)了。

首先,通過(guò)cv2.getRotationMatrix2D和cv2.warpAffine函數(shù),我們可以指定旋轉(zhuǎn)中心、旋轉(zhuǎn)角度和縮放比例來(lái)旋轉(zhuǎn)圖像。

接下來(lái),將圖像轉(zhuǎn)換為浮點(diǎn)數(shù)類型,我們可以通過(guò)乘以亮度因子并將像素值控制在0到255之間來(lái)調(diào)整圖像亮度。

然后,通過(guò)指定裁剪區(qū)域的坐標(biāo)和長(zhǎng)度,我們可以裁剪出我們需要的圖像,并使用灰色填充圖像的不足部分。

最后,使用cv2.Stitcher_create和stitch函數(shù),我們可以將多張圖像拼接在一起,從而創(chuàng)建一個(gè)更大的圖像。在拼接過(guò)程中,我們需要注意邊緣區(qū)域可能會(huì)有黑邊的問(wèn)題,可以使用圖像裁剪來(lái)去除。

上述這些操作是圖像處理中非?;A(chǔ)的操作,在實(shí)際應(yīng)用中也非常常見。掌握這些基礎(chǔ)操作后,我們可以更加輕松地實(shí)現(xiàn)更復(fù)雜的圖像處理算法。

以上就是Python圖像處理之圖像增廣算法詳解的詳細(xì)內(nèi)容,更多關(guān)于Python圖像增廣算法的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 4款Python 類型檢查工具,你選擇哪個(gè)呢?

    4款Python 類型檢查工具,你選擇哪個(gè)呢?

    這篇文章主要介紹了4款Python 類型檢查工具的相關(guān)資料,幫助是及早檢查,提前發(fā)現(xiàn)類型的錯(cuò)誤,增強(qiáng)代碼的一致性與可維護(hù)性。(還有防止脫發(fā),喵),感興趣的朋友可以了解下
    2020-10-10
  • Django中使用group_by的方法

    Django中使用group_by的方法

    這篇文章主要介紹了Django中使用group_by的方法,實(shí)例分析了在Django中使用group_by語(yǔ)句的相關(guān)技巧,需要的朋友可以參考下
    2015-05-05
  • python腳本生成caffe train_list.txt的方法

    python腳本生成caffe train_list.txt的方法

    下面小編就為大家分享一篇python腳本生成caffe train_list.txt的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-04-04
  • Python調(diào)試代碼的高效方法分享

    Python調(diào)試代碼的高效方法分享

    寫代碼最讓人抓狂的,不是邏輯想不明白,而是代碼跑起來(lái)——直接爆炸,所以本文小編給大家介紹如何快速找出 Bug,并解決它們,感興趣的小伙伴跟著小編一起來(lái)看看吧
    2025-04-04
  • Python定義一個(gè)Actor任務(wù)

    Python定義一個(gè)Actor任務(wù)

    這篇文章主要介紹了Python定義一個(gè)Actor任務(wù),文中講解非常細(xì)致,代碼幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-07-07
  • Python爬取365好書中小說(shuō)代碼實(shí)例

    Python爬取365好書中小說(shuō)代碼實(shí)例

    這篇文章主要介紹了Python爬取365好書中小說(shuō)代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-02-02
  • 教你用Python按順序讀取文件夾中文件

    教你用Python按順序讀取文件夾中文件

    最近工作中讀取文件時(shí)經(jīng)常遇上比較復(fù)雜的情況,所以下面這篇文章主要給大家介紹了關(guān)于如何利用Python按順序讀取文件夾中文件的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-04-04
  • python解決報(bào)錯(cuò)ImportError: Bad git executable.問(wèn)題

    python解決報(bào)錯(cuò)ImportError: Bad git executable.問(wèn)題

    這篇文章主要介紹了python解決報(bào)錯(cuò)ImportError: Bad git executable.問(wèn)題。具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-06-06
  • Python答題卡識(shí)別并給出分?jǐn)?shù)的實(shí)現(xiàn)代碼

    Python答題卡識(shí)別并給出分?jǐn)?shù)的實(shí)現(xiàn)代碼

    本文帶領(lǐng)大家學(xué)習(xí)Python答題卡識(shí)別并給出分?jǐn)?shù)的實(shí)現(xiàn)代碼,代碼實(shí)現(xiàn)思路清晰,簡(jiǎn)單易懂,Python識(shí)別答題卡相關(guān)知識(shí)感興趣的朋友一起看看吧
    2021-06-06
  • Linux重裝miniconda的方法步驟

    Linux重裝miniconda的方法步驟

    在Linux系統(tǒng)中,使用miniconda可以方便的進(jìn)行軟件的安裝和環(huán)境配置,本文就來(lái)介紹一下Linux重裝miniconda的方法步驟,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-03-03

最新評(píng)論

古蔺县| 博野县| 荔波县| 静安区| 灵丘县| 巴彦淖尔市| 香河县| 桂林市| 鸡泽县| 吴江市| 南丰县| 宜宾县| 东乡| 商河县| 井研县| 五常市| 沿河| 静海县| 丰镇市| 柳河县| 常州市| 沛县| 彩票| 鞍山市| 盘山县| 大关县| 垦利县| 龙山县| 晋州市| 临湘市| 淮南市| 卓资县| 山丹县| 乐平市| 准格尔旗| 通州市| 罗平县| 保亭| 冀州市| 上高县| 江油市|