matlab小波分解,讀入影象的問題,load與imrea

2022-06-01 18:05:12 字數 3524 閱讀 3722

1樓:i吧啦吧啦

i=imread('d:\影象\tuxiang.gif');%讀取影象

imshow(i);%輸出影象

例如影象在d盤影象資料夾下,叫做tuxiang.jpg,路徑就是d:\影象\tuxiang.gif

matlab中imread讀入影象的原理是什麼? 請幫忙一些學術的語言表達一下。。。。

2樓:我要那個妾

這個問題很複雜的。不管是什麼語言,c也好,matlab也好,它要讀取一個檔案的資訊都必須按照檔案資料的格式來讀取,也就是說,matlab讀取影象的方法和c語言是一樣的。matlab的imread很強大,一個命令可以讀取各種型別的影象。

但是imread並不是一個實際功能函式。不同的影象格式有不同的編碼方式,因此有不同的讀取方式。實際上,為每種不同格式的影象編寫各自的讀取函式是適當的,實際中也是這麼做的。

matlab就是這樣的,imread只是一個入口函式。它僅僅是做了一些檔名的處理,從你的檔名中,找到絕對路徑,找到影象字尾名,然後呼叫合適的讀取函式。比如你開啟\toolbox\matlab\imagesci\private資料夾會看到很多諸如readjpg.

m,readtif.m的檔案。這些才是不同格式**讀取的真正函式,但是!

這些函式也不是實際功能函式!你開啟這些m函式就可以看到裡面其實很簡單。它們所做的事情和imread差不多。

也是呼叫了一些別的函式。比如readjpg.m裡的實際讀取函式是rjpg8c rjpg16c 這些。

你會發現這些檔案也存在於上面所說的這個資料夾中,但是它們的字尾名不是.m,而是.mex(.

mex64 for 64bit),這些實際功能函式並不是用matlab編寫的,而是用c編寫的,它們是經過編譯的檔案,不是文字檔案。matlab只是呼叫他們而已。

也就是說實際上matlab讀取影象也是呼叫了c語言編寫的**。而且不同格式的影象有不同的**。imread只不過是個入口函式而已。

這種結構在matlab裡非常非常非常常見。

matlab中imread函式讀入影象後,產生的矩陣是什麼意思,每個元素代表畫素的灰度值嗎?

3樓:匿名使用者

是的,如果是灰度圖的話,如果是彩色圖,則矩陣是3維矩陣,儲存的是每個畫素的r,g,b的值

matlab中imread讀取的**和直接地址讀取**有什麼區別

4樓:丫丫的蘿莉控

方法/步驟

1、在matlab軟體中,讀取影象資料(載入)利用的是imread函式,主要有以下4種方式:

a = imread(filename, fmt)

[x, map] = imread(...)

[...] = imread(filename)

[...] = imread(url,...)

[...] = imread(...,param1,val1,param2,val2...)

作為初步以及最為常見的方式,採取第一種講解。

如下圖所示即為將載入的**,**格式(jpg) :

2、在命令視窗(command window)輸入語句:

即讀入**資料儲存在imdata矩陣中。如下所示,在workspace可以看到該矩陣資訊,是一個3維矩陣。

3、在讀入影象資料後就可以進行各種演算法操作,簡單介紹幾種常見的**操作,如下**可以將彩色圖轉為灰度圖:

>> imgray = rgb2gray(imdata);

>> imshow(imgray);

4、影象二值化操作,如下所示即可:

>> lev = graythresh(imdata);

>> bwimg = im2bw(imdata,lev);

>> imshow(bwimg)

二值化後影象如下所示:

5樓:匿名使用者

matlab儲存格式不同,第一種直接是字元型矩陣,第二種是以畫素矩陣的形式儲存。

matlab讀取影象的資料型別是什麼

6樓:

是單個的數值,r等於三維陣列w中第一個陣列的第150行和第150列上的那個元素,g等於三維陣列w中第二個陣列的第150行和第150列上的那個元素,依此類推b。讀入影象的資料型別可以是雙精度或uint8,要參與計算則不支援uint8的運算,你要將uint8轉為double。

利用matlab中的imread怎麼讀取**

7樓:可以叫我表哥

方法/步驟

1、在matlab軟體中,讀取影象資料(載入)利用的是imread函式,主要有以下4種方式:

a = imread(filename, fmt)

[x, map] = imread(...)

[...] = imread(filename)

[...] = imread(url,...)

[...] = imread(...,param1,val1,param2,val2...)

作為初步以及最為常見的方式,採取第一種講解。

如下圖所示即為將載入的**,**格式(jpg) :

2、在命令視窗(command window)輸入語句:

即讀入**資料儲存在imdata矩陣中。如下所示,在workspace可以看到該矩陣資訊,是一個3維矩陣。

3、在讀入影象資料後就可以進行各種演算法操作,簡單介紹幾種常見的**操作,如下**可以將彩色圖轉為灰度圖:

>> imgray = rgb2gray(imdata);

>> imshow(imgray);

4、影象二值化操作,如下所示即可:

>> lev = graythresh(imdata);

>> bwimg = im2bw(imdata,lev);

>> imshow(bwimg)

二值化後影象如下所示:

8樓:碧漱

你要把**存在matlab的那個最小檔案底下才行 就是你的matlab頁面顯示的那個路徑底下

9樓:韓帥

有可能是matlab不識別你的路徑中的中文。

你可以在e盤下新建一個資料夾 road,把**拷到這個資料夾裡;然後新增路徑,

addpath('e:\road\);

然後就可以c=imread('e:\road\p5140106.yue.tif');

10樓:使用者名稱哦嗯嗯

我也是,這個要怎麼解決呢

影象小波分解後重構問題,小波分解是什麼意思?分解後得到的是什麼?小波分解後進行重構得到圖形d1,d2,又是什麼?

來小波分解得到的是10個矩陣源,第一級變換可以得到4個小波係數矩陣,但是第二級變換的時候是將第一級中那個低頻分量矩陣分解成四個新的矩陣,第 同樣是這樣分解的,所以 小波分解得到的是10個矩陣,你可以先從第三層開始,將第三層的四個係數矩陣分別進行單支重構,然後疊加,得到的矩陣再同第二層的剩下三個高頻係...

matlab小波包和小波分析,matlab小波包分析的分解係數和重構係數代表什麼含義?

問題1是對 的 問題2也是對的 問題3的前半部分,對於頻段的計算也是對的,但是 比較各個頻段的幅值,就可知道訊號的頻率成分 是錯的。小波變換不是純頻域的方法,所以通常的應用是不合適用頻率描述分析的,到了計算結果的頻段這一步已經就完成了。你要得到各個層次結果的頻率值需要將各個層次的結果做fft,然後根...

matlab複數矩陣矩陣奇異值分解

不論實矩陣或是虛矩陣,奇異值分解的結果都是非負的 實數的奇異值,如 a magic 5 b svd a c rand 5 d a 1i c e svd d 結果是 b 65.0000 22.5471 21.6874 13.4036 11.9008 e 65.0554 22.5819 21.6764 ...