圖片數據增強-resize(不同插值)、各種模糊

各種不同的模糊處理

import os
import cv2def apply_blur_to_images(input_folder_path, output_folder_path):# 遍歷文件夾下的所有文件for filename in os.listdir(input_folder_path):# 檢查文件類型是否為圖片if filename.endswith('.jpg') or filename.endswith('.jpeg') or filename.endswith('.png'):# 構建輸入圖片的完整路徑input_image_path = os.path.join(input_folder_path, filename)# 讀取圖片image = cv2.imread(input_image_path)# 根據不同的模糊方法進行處理for blur_method in ['gaussian', 'mean', 'median', 'bilateral']:# 創建對應的模糊文件夾output_blur_folder_path = os.path.join(output_folder_path, blur_method)os.makedirs(output_blur_folder_path, exist_ok=True)# 根據選擇的模糊方法進行處理if blur_method == 'mean':blurred_image = cv2.blur(image, (15, 15))elif blur_method == 'median':blurred_image = cv2.medianBlur(image, 15)elif blur_method == 'bilateral':blurred_image = cv2.bilateralFilter(image, 15, 75, 75)else:blurred_image = cv2.GaussianBlur(image, (15, 15), 0)# 構建輸出圖片的完整路徑output_image_path = os.path.join(output_blur_folder_path, filename)# 保存模糊處理后的圖片cv2.imwrite(output_image_path, blurred_image)if __name__ == '__main__':# 文件夾不要有中文!!!!!!!!!# 輸入文件夾路徑input_folder_path = './data'# 輸出文件夾路徑output_folder_path = './output'# 調用函數apply_blur_to_images(input_folder_path, output_folder_path)

resize 下采樣

import os
import cv2def reduce_resolution(input_folder_path, output_folder_path, scale_factor, interpolation):# 遍歷文件夾下的所有文件for filename in os.listdir(input_folder_path):# 檢查文件類型是否為圖片if filename.endswith('.jpg') or filename.endswith('.jpeg') or filename.endswith('.png'):# 構建輸入圖片的完整路徑input_image_path = os.path.join(input_folder_path, filename)# 讀取圖片image = cv2.imread(input_image_path)# 計算目標寬度和高度target_width = int(image.shape[1] * scale_factor)target_height = int(image.shape[0] * scale_factor)# 調整圖像尺寸resized_image = cv2.resize(image, (target_width, target_height), interpolation=interpolation)# 構建輸出圖片的完整路徑interpolation_name = get_interpolation_name(interpolation)output_folder = os.path.join(output_folder_path, interpolation_name)os.makedirs(output_folder, exist_ok=True)  # 創建輸出文件夾(如果不存在)output_image_path = os.path.join(output_folder, filename)# 保存調整尺寸后的圖片cv2.imwrite(output_image_path, resized_image)def get_interpolation_name(interpolation):if interpolation == cv2.INTER_NEAREST:return 'INTER_NEAREST'elif interpolation == cv2.INTER_LINEAR:return 'INTER_LINEAR'elif interpolation == cv2.INTER_CUBIC:return 'INTER_CUBIC'elif interpolation == cv2.INTER_LANCZOS4:return 'INTER_LANCZOS4'else:return 'UNKNOWN'if __name__ == '__main__':# 文件夾不要有中文!!!!!!!!!# 輸入文件夾路徑input_folder_path = './data'# 輸出文件夾路徑output_folder_path = './output'# 比例系數scale_factor = 0.5  # 調整為原始圖像的一半# 插值方法列表interpolations = [cv2.INTER_NEAREST, cv2.INTER_LINEAR, cv2.INTER_CUBIC, cv2.INTER_LANCZOS4]# 遍歷插值方法for interpolation in interpolations:# 調用函數進行圖像尺寸調整reduce_resolution(input_folder_path, output_folder_path, scale_factor, interpolation)

遍歷文件夾,結果以名字命令,方便區分
在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/17178.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/17178.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/17178.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

手算示例:在神經網絡中進行后門攻擊及驗證

手算示例:在神經網絡中進行后門攻擊及驗證 一、神經網絡架構二、初始化參數三、數據集干凈數據(原始數據)帶后門數據(污染數據) 訓練步驟四、示例前向傳播(干凈數據)計算損失(干凈數…

每天五分鐘深度學習框架pytorch:tensor張量的維度轉換大全

本文重點 在深度學習中比較讓人頭疼的一點就是矩陣的維度,我們必須構建出符合神經網絡維度的矩陣,只有將符合要求的矩陣放到神經網絡中才可以運行神經網絡,本節課程我們將學習以下tensor中維度的變化。 view和shape View和shape,這兩個方法可以完成維度的變換操作,而且使…

【C語言實現TCP通信】

要在C語言中實現TCP通信,您可以遵循以下步驟: 創建Socket:使用socket()函數創建套接字,指定協議族為AF_INET(IPv4)或AF_INET6(IPv6),類型為SOCK_STREAM表示使用TCP協議。…

【相機標定系列】【相機模型】SLAM 中常用的相機模型畸變模型總結

Overview 魚眼鏡頭的成像原理分類: Dioptric cameras,通過透鏡來實現,主要是折射 Catadioptric cameras,使用一個標準相機加一個面鏡(Shaped mirror) polydioptric camera,通過多個相機重疊視…

npm的基本命令和用法

1. 安裝與初始化 安裝npm 首先,確保你的系統中已安裝了Node.js,因為npm隨Node.js一同分發。訪問Node.js官網下載并安裝適合你操作系統的版本。安裝完成后,在終端或命令提示符中輸入以下命令來驗證安裝: 1$ node -v 2$ npm -v …

[STM32-HAL庫]ADC采集-DMA中斷采集-平均值濾波-STM32CUBEMX開發-HAL庫開發系列-主控STM32F103C8T6

目錄 一、前言 二、實現步驟 1.STM32CUBEMX配置 2.Keil工程程序設計 三、結語 一、前言 本文通過STM32CUBEMX實現對ADC的數據采集和濾波操作,幫助各位開發者完成與模擬量輸入的采集工作。 二、實現步驟 1.STM32CUBEMX配置 以STM32F103C8T6為例,打開S…

3D 生成重建015-nerf2mesh從神經輻射場中提取mesh和紋理!

3D 生成重建015-nerf2mesh從神經輻射場中提取mesh和紋理! 文章目錄 0 論文工作1 論文方法2 效果 0 論文工作 NeRF2Mesh 提出了一種從多視角 RGB 圖像重建紋理表面網格的新方法。它克服了傳統 NeRF 模型的局限性,由于其隱式表示,傳統 NeRF 模…

高斯分步正態分布

高斯分布,也稱為正態分布(Normal Distribution),是統計學和概率論中最重要的分布之一。它由德國數學家卡爾弗里德里希高斯(Carl Friedrich Gauss)首先系統研究并命名。以下是關于高斯分布的詳細介紹&#x…

基于 Pre-commit 的 Python項目代碼風格統一實踐

背景信息 統一代碼風格首先需要定義參照的規范,每個團隊可能會有自己的規范,我們選擇的規范是 yapf mypy isort,如果保證所有的研發人員都遵循相關規范呢? 鼓勵 IDE 中對應的插件的安裝,通過直接對應的插件&#x…

bootstrap實現天平效果

之前提到了,最近,孩子的幼兒園讓家長體驗“半日助教活動”,每個家長需要講授15-20分鐘的課程。作為一名程序員,實在沒有能教的課程,只能做了一個小游戲,帶著小朋友們熟悉數字。 在上一章博客中&#xff0c…

【讀書】讀書筆記——理科生的視角:底層邏輯+數學之美

1,底層邏輯1(看清這個世界的底牌) 劉潤 著 0)什么是底層邏輯? 底層邏輯是:事物之間共同點、變化背后不變的東西事;看清事物的本質,才能在復雜變化中從根本上解決問題。 1&#x…

【Java繼承】(超級詳細!!!)

【Java繼承】(超級詳細!!!) 1、 繼承的概念2 、繼承的語法3、 父類成員訪問3.1 子類中訪問父類的成員變量3.2 子類中訪問父類的成員方法 4、 super關鍵字5 、子類的構造方法6、 繼承關系上的執行順序7、protected 關鍵…

ubuntu20.04安裝后配置:wifi、屏幕亮度、Nvidia驅動等

文章目錄 一、安裝時最好用英語,否則Downloads等home下文件夾是中文二、安裝后開機無法進入系統圖形界面三、清理不必要軟件,更新系統四、屏幕亮度、Nvidia驅動五、wifi 一、安裝時最好用英語,否則Downloads等home下文件夾是中文 安裝完再在…

error: ‘address‘ in ‘class school‘ does not name a type school:: address = “

錯誤代碼 class school{ public:string name;static string address; public:static string getAddress(){return address;} };school::address "南京路";原因 school::address “南京路”;前面未加類型,導致編譯錯誤 解決 class school{ public:stri…

選項卡式小部件QTabWidget

文章目錄 1. 詳細介紹2. 常用屬性3. 信號4. 常用函數5. 官方示例Tab Dialog QTabWidget提供一堆選項卡式小部件。 1. 詳細介紹 選項卡式部件提供一個選項卡欄和一個用于顯示與每個選項卡相關的頁面的頁面區域。 默認情況下,選項卡欄顯示在頁面區域上方,…

Vue.js - 計算屬性與偵聽器 【0基礎向 Vue 基礎學習】

文章目錄 計算屬性 computedcomputed 的使用方法computed 與 method 的區別計算屬性完整寫法 watch 偵聽器(監視器)簡單寫法 → 簡單類型數據,直接監視完整寫法 → 添加額外配置項 計算屬性 computed computed 的使用方法 **概念&#xff1…

web題解,基礎知識鞏固(qsnctf)

1.文章管理系統 1)打開題目,把它頁面翻完了,沒看懂它有啥用 2)看了看源碼,也是一樣的,沒找到有用的東西 3)想著可能還是在隱藏文件里找,那我就直接用dirsearch掃掃看 4)…

初識C++ · 模擬實現vector

目錄 前言: 1 部分簡單函數的實現 2 push_back和pop_back 3 reserve和resize 4 Print_vector 5 insert和erase 6 拷貝構造 7 構造 8 賦值 9 memcpy的問題 10 迭代器失效 前言: 繼上文模擬實現了string之后,接著就模擬實現vector&…

DataFrame—數據匯總9

s3.sort_index() 文章最前: 我是Octopus,這個名字來源于我的中文名--章魚;我熱愛編程、熱愛算法、熱愛開源。所有源碼在我的個人github ;這博客是記錄我學習的點點滴滴,如果您對 Python、Java、AI、算法有興趣&#xf…

MyBatis復習筆記

3.Mybatis復習 3.1 xml配置 properties&#xff1a;加載配置文件 settings&#xff1a;設置駝峰映射 <settings><setting name"mapUnderscoreToCamelCase" value"true"/> </settings>typeAliases&#xff1a;類型別名設置 #這樣在映射…