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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

uint8、double、mat2uint、imhist绘直方图w恩替藐视

發布時間:2025/3/15 编程问答 13 豆豆
生活随笔 收集整理的這篇文章主要介紹了 uint8、double、mat2uint、imhist绘直方图w恩替藐视 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.問題描述

<span style="font-size:18px;">ImgUS = imread('050.bmp'); Igray = rgb2gray(ImgUS); Igray = double(Igray); figure,imshow(Igray ,[]); figure;imhist(Igray);</span>
圖像可以正常顯示,但是灰度直方圖卻無法顯示。

2.解答:

2.1 網友的說法:

? ???默認情況下,matlab將圖像中的數據存儲為double型,即64位浮點數;matlab還支持無符號整型(uint8和uint16);uint型的優勢在于節省空間,涉及運算時要轉換成double型。

2.2 真實的原因:

? ?問題的真正的解釋其實應該是這樣的。

? ?首先是在數據類型轉換時候uint8和im2uint8的區別,uint的操作僅僅是將一個double類型的小數點后面的部分去掉;但是im2uint8是將輸入中所有小于0的數設置為0,而將輸入中所有大于1的數值設置為255,再將所有其他值乘以255。
? ???圖像數據在進行計算前要轉化為double類型的這樣可以保證圖像數據運算的精度。很
多矩陣的數據也都是double的,要想顯示,必須先轉換為圖像的標準數據格式。如果轉換前的數據符合圖像數據標準(比如,如果是double則要位于0~1之間,這個是由Matlab中的規定),那么可以直接使用im2uint8。 ? ? 如果轉換前不滿足這個分布規律(也就是我們草草的用double強制將uint變成double型),則使用uint8,將其自動切割至0~255(超過255的按255)最好使用mat2gray(這個函數可以把一個double類的任意數組轉換成取值范圍在[0,1]之間的),將一個矩陣轉化為灰度圖像的數據格式(double)。另外,可以用isgray判斷矩陣是否是一個圖像數據矩陣。

3.?關于imhist:

imhist(I)?
顯示圖像I的直方圖,圖像的灰度數由圖像類型指定,如果I為灰度圖像,imhist使用一個默認的256值,如果I為二值圖像,imhist則使用2值。
修訂后的代碼: <span style="font-size:18px;">ImgUS = imread('050.bmp'); Igray = rgb2gray(ImgUS); Igray = double(Igray); figure,imshow(Idenoise,[]); Igray = mat2gray(Igray);%標準化成圖像double figure;imhist(Igray);</span>或者,一開始就進行uint8向圖像標準類型double轉換,利用im2double函數 <span style="font-size:18px;">ImgUS = imread('050.bmp'); Igray = rgb2gray(ImgUS); Igray = im2double(Igray);%標準化成圖像double figure,imshow(Igray); figure;imhist(Igray );</span>





總結

以上是生活随笔為你收集整理的uint8、double、mat2uint、imhist绘直方图w恩替藐视的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。