機器視覺學習-day19-圖像亮度變換

1 亮度和對比度

亮度:圖像像素的整體強度,亮度提高就是所有的像素加一個固定值。

? ? ?

對比度:當對比度提高時,圖像的暗部與亮部的差值會變大。
? ? ??

OpenCV調整圖像亮度和對比度的公式使用一個:

代碼實踐步驟:圖片輸入→亮度變換→圖片輸出

1.1 亮度變換

亮度:主要通過β控制,在虛擬仿真實驗中控制范圍是[-100,100],如果是彩色圖像,則會同時應用在每個通道的數值上。

圖像原圖:1.jpg

import cv2
import numpy as npif __name__ == '__main__':# 1. 圖片輸入path = '1.jpg'image_np = cv2.imread(path)# 2. 亮度變換# 公式:g(i,j) = α * f(i,j) + β# β控制亮度alpha = 1.0  # 先不管對比度beta = -100  # 虛擬仿真限制在 [-100到100],實際可超過這個范圍# 截取,可以保證數據的上下限pix = np.clip((alpha * image_np + beta),  # 要處理的原始圖像數據0,  # 下限,低于此數值會被改為此數值255  # 上限,高于此數值會被改為此數值)print(pix)print(pix.dtype)  # int16# 16位轉8位pix = np.uint8(pix)# 5. 圖像輸出cv2.imshow('pix', pix)cv2.imwrite('pix_1.jpg', pix)cv2.waitKey(0)

代碼運行結果:pix_1.jpg? ?(對比,右為pix_1.jpg)

??

圖像亮度變換可能會改變彩色圖片通道的平衡,因此實際使用時需要慎重,可以轉換為灰度調節改善此問題。

1.2 對比度變換

在對比度變換的過程中,需要同時考慮α和β的數值。
α
是對比度變換的主要因素,當α大于1時,圖像的對比度增加,因為圖像之間的亮度差異變大了;當α位于0到1之間時,圖像的對比度減小,因為像素之間的亮度差異變小了。
β
雖然β主要用于調節亮度,但是在調節對比度的時候,它也作為一個輔助因素,起到間接作用。β可以在α調節后,平移像素值,使畫面亮度恢復均衡。

對比度提升是一種圖像增強的手段,有助于增加梯度值,可以用于邊緣檢測。

原圖同上:1.jpg

import cv2
import numpy as npif __name__ == '__main__':# 1. 圖片輸入path = '1.jpg'image_np = cv2.imread(path)# 2. 亮度變換# 公式:g(i,j) = α * f(i,j) + βalpha = 1.5  # 對比度beta = -100  # 虛擬仿真限制在 [-100到100],實際可超過這個范圍# 截取,可以保證數據的上下限pix = np.clip((alpha * image_np + beta),  # 要處理的原始圖像數據0,  # 下限,低于此數值會被改為此數值255  # 上限,高于此數值會被改為此數值)print(pix)print(pix.dtype)  # int16# 16位轉8位pix = np.uint8(pix)# 5. 圖像輸出cv2.imshow('pix', pix)cv2.imwrite('pix_2.jpg', pix)cv2.waitKey(0)

代碼運行:pix_2.jpg??(對比,右為pix_2.jpg)

? ??

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

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

相關文章

redis詳解 (最開始寫博客是寫redis 紀念日在寫一篇redis)

Redis技術 1. Redis簡介 定義與核心特性(內存數據庫、鍵值存儲) Redis(Remote Dictionary Server,遠程字典服務)是一個開源的、基于內存的高性能鍵值存儲數據庫,由 Salvatore Sanfilippo 編寫,用…

【MD文本編輯器Typora】實用工具推薦之——輕量級 Markdown 編輯器Typora下載安裝使用教程 辦公學習神器

本文將向大家介紹一款輕量級 Markdown 編輯器——Typora,并詳細說明其下載、安裝與基本使用方法。 引言: MD 格式文檔指的是使用 Markdown 語言編寫的文本文件,其文件擴展名為 .md。 Markdown 是一種由約翰格魯伯(John Gruber&am…

Vue2+Element 初學

大致實現以上效果 一、左側自動加載菜單NavMenu.vue 菜單組件&#xff0c;簡單調整了一下菜單直接的距離&#xff0c;代碼如下&#xff1a;<template><div><template v-for"item in menus"><!-- 3、有子菜單&#xff0c;設置不同的 key 和 inde…

Shell編程知識整理

文章目錄一、Shell介紹1.1 簡介1.2 Shell解釋器二、快速入門2.1 編寫Shell腳本2.2 執行Shell腳本2.3 小結三、Shell程序&#xff1a;變量3.1 語法格式3.2 變量使用3.3 變量類型四、字符串4.1 單引號4.2 雙引號4.3 獲取字符串長度4.4 提取子字符串4.5 查找子字符串五、Shell程序…

AI與低代碼的激情碰撞:微軟Power Platform融合GPT-4實戰之旅

引言 在當今數字化飛速發展的時代,AI 與低代碼技術正成為推動企業變革的核心力量。AI 憑借其強大的數據分析、預測和決策能力,為企業提供了智能化的解決方案;而低代碼開發平臺則以其可視化、快速迭代的特性,大大降低了應用開發的門檻和成本。這兩者的結合,開啟了一場全新的…

豆包1.6+PromptPilot實戰:構建智能品牌評價情感分類系統的技術探索

豆包1.6PromptPilot實戰&#xff1a;構建智能品牌評價情感分類系統的技術探索 &#x1f31f; Hello&#xff0c;我是摘星&#xff01; &#x1f308; 在彩虹般絢爛的技術棧中&#xff0c;我是那個永不停歇的色彩收集者。 &#x1f98b; 每一個優化都是我培育的花朵&#xff0c;…

如何在VsCode中使用git(免敲命令版本!保姆級!建議收藏!)

目錄 文章目錄 前言 一、電腦安裝git 二、在vscode安裝git插件 三、克隆倉庫 四、提交代碼 五、創建分支、切換分支、合并分支 1、創建分支 2、切換分支 3、合并分支 六、創建標簽和推送標簽 七、解決沖突 八、拉取、抓取倉庫 九、Reivew代碼 總結 前言 隨著Vscode的推出和普及…

3.kafka常用命令

在 0.9.0.0 之后的 Kafka&#xff0c;出現了幾個新變動&#xff0c;一個是在 Server 端增加了 GroupCoordinator 這個角色&#xff0c;另一個較大的變動是將 topic 的 offset 信息由之前存儲在 zookeeper 上改為存儲到一個特殊的 topic&#xff08;__consumer_offsets&#xff…

主從DNS和Web服務器搭建過程

完整服務器搭建流程 環境說明 主服務器&#xff1a;192.168.102.128 - DNS Web 從服務器&#xff1a;192.168.102.133 - 從DNS 網站&#xff1a;www.zhangsan.com (HTTPS加密)、www.lisi.com (HTTP) 手動配置主服務器和從服務器的ip地址&#xff0c;dns&#xff0c;網關…

信號無憂,轉決千里:耐達訊自動化PROFIBUS集線器與編碼器連接術

在工業自動化領域&#xff0c;尤其是高端裝備制造、智能產線、精密運動控制等場景中&#xff0c;系統穩定性與信號實時性一直是工程師關注的核心。隨著設備智能化程度不斷提高&#xff0c;編碼器作為運動控制的關鍵反饋元件&#xff0c;其數量與分布密度顯著增加&#xff0c;對…

大模型微調示例四之Llama-Factory-DPO

大模型微調示例四之Llama-Factory-DPO一、強化學習數據處理二、配置訓練文檔三、模型預測一、強化學習數據處理 原始數據地址&#xff1a;https://nijianmo.github.io/amazon/index.html 第一步&#xff1a;讀取 video game 信息 import codecs, json, re from random impor…

Java 將HTML文件、HTML字符串轉換為圖片

在 Java 開發中&#xff0c;我們經常會遇到將 HTML 內容轉換為圖片的需求&#xff0c;比如生成網頁報告截圖、電商商品詳情頁預覽圖、在線文檔縮略圖等。本文將介紹如何使用 Free Spire.Doc for Java 庫來實現這一功能。 Free Spire.Doc for Java 是一款免費庫且無需任何依賴&a…

(Arxiv-2024)VideoMaker:零樣本定制化視頻生成,依托于視頻擴散模型的內在力量

VideoMaker&#xff1a;零樣本定制化視頻生成&#xff0c;依托于視頻擴散模型的內在力量 paper title&#xff1a;VideoMaker: Zero-shot Customized Video Generation with the Inherent Force of Video Diffusion Models paper是ZJU發布在Arxiv 2024的工作 Code:鏈接 圖1. 我…

錄屏、助眠、翻譯

01【小熊錄屏】 02【全球翻譯】 03【聲萌助眠】 03 軟件獲取 小熊錄屏&#xff08;點擊下載&#xff09; 聲萌助眠&#xff08;點擊下載&#xff09; 全球-譯官&#xff08;點擊下載&#xff09;

第17章|PowerShell 安全警報——高分學習筆記(運維實戰向)

&#x1f6e1;? 第17章&#xff5c;PowerShell 安全警報——高分學習筆記&#xff08;運維實戰向&#xff09;一句話核心&#xff1a;PowerShell 的“安全設計目標”是——不替你越權&#xff1b;盡量防“誤觸發不可信腳本”&#xff1b;并非反惡意軟件的最后防線。1&#xff…

哈希表性能對比:uthash、hsearch與Linux內核哈希表的深度解析

引言 在網絡編程和高性能服務器開發中,高效的數據結構是保證系統性能的關鍵。本文基于對三種主流哈希表實現(uthash、hsearch和Linux內核哈希表)的深度測試,探討它們在處理50,000個客戶端連接時的性能表現、內存效率及適用場景。 測試環境與方法 測試數據結構 我們使用…

探索 XGBoost 與 LightGBM 的差異:哪個更適合你的項目?

輕松對比&#xff1a;XGBoost 和 LightGBM 的差異與選擇指南 在機器學習領域&#xff0c;梯度提升樹&#xff08;GBDT&#xff09;是一種廣泛使用的算法&#xff0c;而 XGBoost 和 LightGBM 是兩款最受歡迎的 GBDT 實現。它們都能夠顯著提高模型的準確性&#xff0c;但它們之間…

C++鏈表雙杰:list與forward_list

在C容器的世界里&#xff0c;當我們需要頻繁地在序列中間進行插入和刪除時&#xff0c;基于數組的 vector 會顯得力不從心。這時&#xff0c;鏈表結構就閃亮登場了。STL提供了兩種鏈表容器&#xff1a;功能全面的雙向鏈表 std::list 和極致輕量化的單向鏈表 std::forward_list。…

Ruoyi-vue-plus-5.x第一篇Sa-Token權限認證體系深度解析:1.4 Sa-Token高級特性實現

&#x1f44b; 大家好&#xff0c;我是 阿問學長&#xff01;專注于分享優質開源項目解析、畢業設計項目指導支持、幼小初高的教輔資料推薦等&#xff0c;歡迎關注交流&#xff01;&#x1f680; Sa-Token高級特性實現 前言 在前面的文章中&#xff0c;我們學習了Sa-Token的…

Linux 服務器初始化解析和ssh密鑰交換的介紹

目錄 2. SSH 基于密鑰交換的介紹和原理 2.1 核心優勢 2.2 密鑰交換原理&#xff08;非對稱加密體系&#xff09; 2.3 基礎配置步驟 3. 服務器初始化 3.1 安裝 yum 網絡源 3.1.1 背景說明 3.1.2 實操步驟 3.2 安裝運維的必備工具 3.2.1 工具清單 3.2.2 批量安裝命令 …