實驗四 圖像增強—灰度變換之直方圖變換

一.實驗目的

1.掌握灰度直方圖的概念及其計算方法;

2.熟練掌握直方圖均衡化計算過程;了解直方圖規定化的計算過程;

3.了解色彩直方圖的概念和計算方法

二.實驗內容

1 讀取數字圖像,顯示直方圖(例如使用imhist,有余力可嘗試bar,stem等函數),并進行直方圖均衡化處理;

2 顯示經過均衡化處理過的圖像直方圖。

3 有余力可探索更多關于直方圖的圖像處理操作(例如直方圖規定化、局部直方圖規定化等)。

4 記錄和整理實驗報告。

三.實驗程序、實驗結果與實驗分析

1.實驗程序

(1)讀取數字圖像,顯示直方圖,并進行直方圖均衡化處理(Test4_1)

I=imread('pollen.jpg');??J=histeq(I);%對原圖像進行直方圖均衡化處理figure;subplot(1,2,1) ;imshow(I);title('原圖像');?????????subplot(1,2,2) ;imshow(J);?title('直方圖均衡化后的圖像') ;???figure; subplot(1,2,1) ;imhist(I,64);??? %將原圖像直方圖顯示為64級灰度title('原圖像直方圖') ;???????subplot(1,2,2);?????????????imhist(J,64) ;??? %將均衡化后圖像的直方圖顯示為64級灰度title('均衡變換后的直方圖') ;?

(2)讀取數字圖像,顯示直方圖,并進行直方圖規定化處理(Test4_2)

I=imread('mars.jpg');% 顯示原始圖像和其直方圖figure;subplot(1, 2, 1);imshow(I);title('火星天體福布斯的圖像');subplot(1, 2, 2);imhist(I, 64);title('原圖像直方圖');m1 = 0.15; sig1 = 0.05;? m2 = 0.75; sig2 = 0.05;?A1 = 1; A2 = 0.07;? k = 0.002;?p = twomodegauss(m1, sig1, m2, sig2, A1, A2, k);% 對圖像進行直方圖規定化處理J = histeq(I, p);% 顯示規定化處理后的圖像和其直方圖figure;subplot(1, 2, 1);imshow(J);title('直方圖規定化后的圖像');subplot(1, 2, 2);imhist(J, 64);title('規定化處理后的直方圖');

(3)讀取數字圖像,顯示直方圖,并進行局部直方圖規定化處理(Test4_3)

f=imread('mars.jpg');figure;?subplot(2, 2, 1);?imshow(f);?title('原始圖像');?g1=adapthisteq(f);subplot(2, 2, 2);?imshow(g1);?title('用默認值使用adpthisteq函數的結果');?g2=adapthisteq(f,'NumTiles',[25,25]);subplot(2, 2, 3);?imshow(g2);?title('將參數NumTiles設置為[25,25]時函數的結果');?g3=adapthisteq(f,"NumTiles",[25,25],"ClipLimit",0.05);subplot(2, 2, 4);?imshow(g3);?title('使用這個小片數量,并且ClipLimit=0.05時得到的結果');

2.實驗結果

(1)讀取數字圖像,顯示直方圖,并進行直方圖均衡化處理

(2)讀取數字圖像,顯示直方圖,并進行直方圖規定化處理

直方圖規定化后的圖像

(3)讀取數字圖像,顯示直方圖,并進行局部直方圖規定化處理

3.實驗分析

(1)讀取數字圖像,顯示直方圖,并進行直方圖均衡化處理

①讀取灰度圖像pollen.jpg
I=imread('pollen.jpg');??
②對原圖像進行直方圖均衡化處理
J=histeq(I);
③將均衡化后圖像的直方圖顯示為64級灰度?
imhist(J,64) ;??? %將均衡化后圖像的直方圖顯示為64級灰度

(2)讀取數字圖像,顯示直方圖,并進行直方圖規定化處理

①讀取灰度圖像mars.jpg
I=imread('mars.jpg');
②使用雙模態高斯函數作為特定的直方圖
m1 = 0.15; sig1 = 0.05;? m2 = 0.75; sig2 = 0.05;?A1 = 1; A2 = 0.07;? k = 0.002;?p = twomodegauss(m1, sig1, m2, sig2, A1, A2, k);
③對圖像進行直方圖規定化處理
J = histeq(I, p);

(3)讀取數字圖像,顯示直方圖,并進行局部直方圖規定化處理

①讀取灰度圖像mars.jpg
f=imread('mars.jpg');
②使用adpthisteq函數全部默認設置
g1=adapthisteq(f);
③將小片大小增加到[25,25]
g2=adapthisteq(f,'NumTiles',[25,25]);
④使用小片數量[25,25],使ClipLimit=0.05
g3=adapthisteq(f,"NumTiles",[25,25],"ClipLimit",0.05);

四.思考題

1.直方圖是什么概念?它反映了圖像的什么信息?

直方圖是一個統計圖表,它用于表示數字圖像中每個灰度級出現的頻率或次數。對于一幅給定的圖像,直方圖能夠展示圖像中每個像素強度值(灰度級)的分布情況。橫坐標通常代表灰度級,而縱坐標則代表該灰度級在圖像中出現的頻數或頻率。

直方圖反映了圖像的以下幾個關鍵信息:

對比度:通過直方圖,可以觀察圖像中像素強度的分布情況,從而判斷圖像的對比度。

亮度:直方圖的偏移情況可以反映圖像的整體亮度。如果直方圖主要偏向較高的灰度級,則圖像整體偏亮;反之,如果偏向較低的灰度級,則圖像整體偏暗。

動態范圍:直方圖能夠展示圖像所包含的灰度級范圍,從而反映圖像的動態范圍。


2.直方圖均衡化是什么意思?它的主要用途是什么?

直方圖均衡化是一種增強圖像對比度的方法,通過拉伸像素強度值的分布范圍來增強圖像的對比度。具體來說,它將原始圖像的直方圖變換為均勻分布的形式,從而增強圖像中不同灰度級之間的對比度。

直方圖均衡化的主要用途包括:

提高圖像對比度:通過均衡化操作,可以使圖像的灰度級分布更加均勻,從而提高圖像的對比度,使圖像中的細節更加清晰。

改善視覺效果:對于對比度較低的圖像,直方圖均衡化可以顯著改善其視覺效果,使圖像更加鮮明、生動。

預處理步驟:在圖像處理和分析中,直方圖均衡化常作為預處理步驟,為后續的特征提取、目標識別等任務提供更好的圖像質量。

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

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

相關文章

ArcGIS Pro SDK (八)地理數據庫 1 地理數據庫和數據存儲

ArcGIS Pro SDK (八)地理數據庫 1 地理數據庫和數據存儲 文章目錄 ArcGIS Pro SDK (八)地理數據庫 1 地理數據庫和數據存儲1 打開給定路徑的文件地理數據庫2 使用連接屬性打開企業級地理數據庫3 使用 sde 文件路徑打開企業級地理數…

Bootstrap 提示工具

Bootstrap 提示工具 Bootstrap 是一個流行的前端框架,它提供了一套豐富的工具和組件,用于快速開發響應式和移動設備優先的網頁。其中,提示工具(Tooltip)是 Bootstrap 提供的一個非常有用的組件,它可以在用戶將鼠標懸停在某個元素上時顯示額外的信息。本文將詳細介紹 Boo…

課設:選課管理系統(Java+MySQL)

在本博客中,我將介紹用Java、MySQL、JDBC和Swing GUI開發一個簡單的選課管理系統。 技術棧 Java:用于編寫應用程序邏輯MySQL:用于存儲和管理數據JDBC:用于連接Java應用程序和MySQL數據庫Swing GUI:用于構建桌面應用程…

555 定時器芯片工作原理

在本教程中,您將學習如何使用 555 定時器做一些有趣的事情。許多人用它做的第一件事就是制造閃爍的燈光。但這只是用該芯片可以做很多事情的簡單示例之一。您還可以控制電機、創建鬧鐘、創建樂器等等。 讓我們先來概覽一下這些引腳。 555 定時器引腳排列 引腳 1 接地…

【SpringCloud】概述 -- 微服務入門

在Java的整個學習過程中,大家勢必會聽見一些什么分布式-微服務、高并發、高可用這些專業術語,給人的感覺很高級,有一種高深莫測的感覺。可以看一下這篇博客對這些技術架構的演變有一個初步的認識: 服務端?并發分布式結構演進之路-CSDN博客文…

image媒體組件屬性配合swiper輪播

圖片組件&#xff08;image&#xff09; 先插入個圖片試試&#xff0c;插入圖片用src屬性&#xff0c;這是圖片&#xff1a; 代碼如下&#xff1a; <template><view><swiper indicator-dots indicator-color "#126bae" indicator-active-color &…

Jectpack Navigation組件設置統一跳轉動畫

Activity的跳轉一般通過Theme設置即可&#xff0c;但是Framment的跳轉除了NavigationUI類提供的方法會有動畫以外&#xff0c;直接調用navigate方法是沒有動畫的。 網上的實現個人認為比較麻煩&#xff0c;幫自己寫了一套&#xff0c;主要就是自定義NavHostFragement和Fragmen…

CobaltStrike的內網安全

1.上線機器的Beacon的常用命令 2.信息收集和網站克隆 3.釣魚郵件 4.CS傳遞會話到MSF 5.MSF會話傳遞到CS 1上線機器的Beacon的常用命令 介紹&#xff1a;CobaltStrike分為服務端和客戶端&#xff0c;一般我們將服務端放在kali&#xff0c;客戶端可以在物理機上面&#xff0…

tongweb 部署軟航流版簽一體化應用示例 提示跨域錯誤CORS ERROR

目錄 問題現象與描述 解決辦法 原理解析 什么是CORS 瀏覽器跨域請求限制 跨域問題解決方法 跨域請求流程 瀏覽器請求分類解析 http請求方法簡介 問題現象與描述 重慶軟航科技有限公司提供了一套針對針對word、excel等流式文件轉換成PDF版式文件并進行版式文件在線簽章…

ai積累-具體應用的大概設想

這些場景展示了以 ChatGPT 為代表的生成式 AI 可能的具體應用&#xff1a; 教育輔助&#xff1a; AI 可以充當學生的個性化輔導老師&#xff0c;提供定制化的學習材料和練習。例如&#xff0c;它可以生成針對學生能力水平和興趣的數學問題或歷史教學文章。 客戶支持&#xff1…

LESS 的嵌套寫法有什么優勢?

LESS的嵌套寫法可以提高代碼的可讀性和維護性。通過將相關的樣式規則嵌套在父選擇器中&#xff0c;可以更清晰地表達樣式之間的層級關系&#xff0c;避免重復的代碼&#xff0c;并且使樣式結構更加整潔。 例如&#xff0c;假設有以下HTML結構&#xff1a; <div class"…

Qt 加載圖片的幾種方式 以及加載 loading

項目中經常使用加載圖片&#xff1a; 常用有兩種方式&#xff1a; 1.使用 QWidget 加載圖片&#xff1a; 效果&#xff1a; 樣例源碼&#xff1a; int pict_H ui->widgetImage->height();int pict_W ui->widgetImage->width();ui->widgetImage->setFixe…

白騎士的C語言教學高級篇 3.4 C語言中的算法

算法是解決問題的核心。無論是排序、搜索&#xff0c;還是遞歸與動態規劃&#xff0c;算法的選擇和實現對程序的效率和性能有著重要影響。本節將介紹幾種常見的算法&#xff0c;包括排序算法、搜索算法&#xff0c;以及遞歸和動態規劃的應用。 排序算法 排序算法是將一組數據按…

昇思25天學習打卡營第17天|SSD目標檢測

學AI還能贏獎品&#xff1f;每天30分鐘&#xff0c;25天打通AI任督二脈 (qq.com) SSD目標檢測 模型簡介 SSD&#xff0c;全稱Single Shot MultiBox Detector&#xff0c;是Wei Liu在ECCV 2016上提出的一種目標檢測算法。使用Nvidia Titan X在VOC 2007測試集上&#xff0c;SSD…

使用 CloudWatch + SNS + Lambda 實現多渠道告警系統

1. 簡介 在現代云計算環境中,及時和有效的監控告警對于維護系統的穩定性至關重要。本文將介紹如何使用 AWS CloudWatch、Simple Notification Service (SNS) 和 Lambda 函數構建一個多渠道告警系統,包括郵件告警、釘釘機器人告警和電話語音告警。 2. 系統架構 整個系統的工…

利用border繪制三角技巧

繪制三角形的效果如圖 <html lang"zh-cn"> <head><meta charset"UTF-8"><title>demo</title><style>* {margin: 0;padding: 0;}.box {/* 盒子寬高改成零就變成三角形 &#xff0c;需要哪個方向的三角形就設置哪個方向…

Python一些可能用的到的函數系列130 UCS-Time Brick

說明 UCS對象是基于GFGoLite進行封裝&#xff0c;且側重于實現UCS規范。 內容 1 函數 我發現pydantic真是一個特別好用的東西&#xff0c;可以確保在數據傳遞時的可靠&#xff0c;以及對某個數據模型的描述。 以下&#xff0c;UCS給出了id、time相關的brick映射&#xff0…

【分布式系統五】監控平臺Zabbix實際監控運用(命令+截圖詳細版)

目錄 一.Zabbix 監控 Windows 1.安裝zabbix 2.Web 頁面添加主機&#xff0c;關聯模板 二.Zabbix 監控 Java 應用 1.安裝tomcat 2.服務端安裝 zabbix-java-gateway 3.Web 頁面添加主機&#xff0c;關聯模板 三.Zabbix 監控 SNMP 1.服務端安裝 snmp 監控程序 2.修改 sn…

RT-Thread和freeRTOS啟動流程

一. freeRTOS啟動流程 二. RT-Thread啟動流程 因為RT-Thread中我們定義了補丁函數也叫做鉤子函數--$Sub$$main()--作為一個新功能函數&#xff0c;可以將原有函數劫持下來&#xff0c;并在之后的程序運行中加上$Super $ $前綴來重新調用原始函數。 所以啟動流程是$Sub$$main(…

Chiasmodon:一款針對域名安全的公開資源情報OSINT工具

關于Chiasmodon Chiasmodon是一款針對域名安全的公開資源情報OSINT工具&#xff0c;該工具可以幫助廣大研究人員從各種來源收集目標域名的相關信息&#xff0c;并根據域名、Google Play應用程序、電子郵件地址、IP地址、組織和URL等信息進行有針對性的數據收集。 該工具可以提…