在MATLAB中如何將數個檔案連續讀入並標為陣列,用了命令eval imread1num2str i但不行

2022-07-21 06:11:45 字數 5456 閱讀 2400

1樓:

用cell陣列就可以使用迴圈了。比如a = cell(100, 1); 這樣用a一直到a就可以像100個變數一樣使用了,而且還支援i=10; a=... 這種動態訪問。

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

2樓:可以叫我表哥

方法/步驟

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)

二值化後影象如下所示:

3樓:碧漱

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

4樓:韓帥

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

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

addpath('e:\road\);

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

5樓:使用者名稱哦嗯嗯

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

在matlab中,將多張**的檔名放到一個陣列中,對陣列排序後,如何用imread讀取**這些**並輸出顯示

6樓:匿名使用者

參照這樣的格式

for i=1:300

q(:,:,i)=imread(['m',num2str(i),'.bmp']);

end**名稱就是1.bmp、2.bmp.......3.bmp

如何用matlab讀取資料並按指定格式輸出

7樓:匿名使用者

matlab影象處理工具箱支援四種基本影象型別:索引影象、灰度影象、二進位制影象和rgb影象。matlab直接從影象檔案中讀取的影象為rgb影象。

它儲存在三維陣列中。這個三維陣列有三個面,依次對應於紅(red)、綠(green)、藍(blue)三種顏色,而面中的資料則分別是這三種顏色的強度值,面中的元素對應於影象中的畫素點。設所得矩陣為x三維矩陣(256,256,3) ,x(:

,:,1)代表紅顏色的2維矩陣 x(:,:

,2)代表綠顏色的2維矩陣, x(:,:,3)代表蘭顏色的2維矩陣。

[x, map]=imread('34.bmp');r=double(x(:,:

,1)); %r是256 x 256的紅色資訊矩陣g=double(x(:,:,2)); %g是256 x 256的綠色資訊矩陣b=double(x(:

,:,3)); %b是256 x 256的蘭色資訊矩陣

索引影象資料包括影象矩陣x與顏色圖陣列map,其中顏色圖map是按影象中顏色值進行排序後的陣列。對於每個畫素,影象矩陣x包含一個值,這個值就是顏色圖陣列map中的索引。顏色圖map為m×3雙精度矩陣,各行分別指定紅、綠、藍(r、g、b)單色值,map=[rgb],r、g、b為值域為[0,1]的實數值,m為索引影象包含的畫素個數。

對於相同的資料,採用uint8格式比雙精度格式節省記憶體空間,從而更經濟。在matlab中

如果索引影象的顏色圖小於256行,則它的影象矩陣以uint8格式儲存,否則以雙精度格式儲存。

一:imread:從影象資料夾中讀取影象。

a = imread(filename,fmt) 讀取影象到a,如果檔案是包含一灰度影象,a是一二維矩陣,如果檔案是包含一真彩色影象(rgb),a是一三維矩陣(m-by-n-by-3)。filename :影象檔名;fmt:

影象檔案格式;

檔案必須在當前目錄下,或在matlab的一路徑上。如果 imread不能夠找到一名稱為filename的檔案,那麼它將找一名為filename.fmt的檔案

[x,map] = imread(filename,fmt) 把影象filename讀入與它相關的影象色彩資訊寫入map,影象色彩資訊值在範圍[0,1]中自動地重新調整.

[...] = imread(filename)這種方式是試圖得到檔案的格式從檔案所包含的資訊。

[...] = imread(url,...)從一internet url上讀影象 url 必須包含協議(即: "http://").

1.2資料型別:

tiff的特殊語法:

[...] = imread(...,idx) 從很多影象tiff檔案中讀一個影象;idx是一個整數值,它顯示了所讀影象在檔案中的順序,例如:

如果 idx是 3, imread將讀檔案中的第三個影象。 如果省略了這個變數, imread將讀檔案中的第一個影象.

imread支援的影象檔案格式:jpeg tiff gif bmp png hdf pcx xwd ico cur ras pbm pgm ppm

相關資訊也可在matlab中檢視: imfinfo, imwrite, imformats, fread,

二:imwrite輸出影象

imwrite(a,filename,fmt) 把影象 a 寫入影象檔案 filename.

imwrite(x,map,filename,fmt) 把 x和它的相關色彩資訊map寫入filename.

imwrite(...,filename) 把影象 寫入影象檔案filename,並推測可能的格式用來做filename的副檔名。副檔名必須是fmt中一合法名.

imwrite(...,param1,val1,param2,val2,...) 不同的引數控制輸出檔案的各種不同特徵。

引數要是當前所支援的hdf,jpeg, tiff, png, pbm, pgm, 和ppm 檔案

三:image 顯示影象.image(c) 把矩陣 c 轉成一影象.

c 可以是一mxn 或 mxnx3維的矩陣,且可以是包含 double, uint8,或 uint16 資料.image是用來顯示附標影象,即顯示的影象上有x,y座標軸的顯示,可以看到影象的畫素大小。但可以加上axis off命令即可把座標去掉。

imshow只是顯示影象。用colormap來定義影象顯示用的顏色查詢表,比如用colormap(pink),可以把黑白影象顯示成帶粉紅色的影象。

影象畫素矩陣的資料型別:(1)顯示真彩色影象畫素三維矩陣x,如果是uint8型別,要求矩陣的資料範圍為0-255,(2)如果是double型,則其資料範圍為0-1,要不就會出錯或者出現空白頁。

型別轉換:(1)如果你原來的數值是uint8,在運算中轉換為double後,實際要顯示的數值沒有改變的話,只要用uint8(x)就可轉換為uint8型,如果不想轉換頻繁,也可在顯示時用x/255來轉換為符合0-1double型別範圍要求的數值顯示。(2)如果顯示索引影象(二維矩陣),如果索引影象畫素數值是double型,則它的取值範圍為1-length(colormap),數值起點為1,則矩陣中數值為1的對應colormap中第一行資料,如果索引影象畫素數值是uint8,則取值範圍為0-255,數值起點為0,則矩陣中數值為0的對應colormap中第一行資料,所以索引影象這兩個資料型別之間的轉換,要考慮到+1或-1。

直接用uint8或double轉換則會查詢移位,產生失真情況。uint16資料型別與uint8類似,取值範圍為0-65536。

四:其它常用影象操作:

影象顯示於螢幕有imshow( ), image( )函式;

影象進行裁剪imcrop( );

影象的插值縮放imresize( )函式實現;

旋轉用 imrotate( )實現。

五:具體的操作

下面通過運用影象處理工具箱中的有關函式對下圖(nice.bmp)進行一些變換。見後面的transfer.m內容!

變換前**:(nice.bmp)

變換後所得**:newpic.bmp

例,在電腦f\picture下有一彩色影象檔案nice.bmp,則可由下述語句讀取:

下面是對影象 nice.bmp以y軸為對稱軸所做的一個對稱變換。

% transfer1.m

clear all

figure

[x,map]=imread('f:\picture\nice.bmp');% 所得x為一375x420x3的矩陣

[w1,w2,w3]=size(x); % 375 x 420

w22=floor(w2/2);

image(x); %顯示出影象

title('hello! @this is the first pose of me')%則顯示出影象nice.bmp

axis off; % 去掉影象中的座標

colormap(map); % colormap(),影象查詢表函式。函式結構為colormap(map),設定當前的影象查詢表到map。

imwrite(x,map,'nice.bmp')

for i=1:w1

for j=1:w22 % 影象關於y軸對摺

t=x(i,j);

x(i,j)=x(i,w2-j+1);

x(i,w2-j+1)=t;

endend

figure

image(x);

axis off

title('hello!!@@ can you find any difference of my two picture! ') colormap(map);

imwrite(x,map,'newpic.bmp') %把x寫到nepic2.bmpz中去

% transfer1.m檔案中包含了最基本也是最常用的對讀像處理的命令。

在對影象處理的整個過程中,實質上是對[x,map]=

如何將AI檔案匯入AE中,如何將AI檔案匯入AE中

直接拖進去就ok了 拖到素材視窗 pdf.ai檔案是ai格式的咯,pdf不行的 ae裡面如何編輯ai檔案 把ai檔案匯入到ae裡面製作動畫的 但是在ae裡面怎麼對ai檔案進行編輯啊 ai中得路徑怎麼匯入到ae中 ai和ae都是adobe公司的軟體,所以他們相容性很高,ai的路徑可以直接ctrl c複...

如何將pdf檔案合併,如何將PDF檔案合併

把多個pdf檔案合併到一起要先確定好檔案的合併順序。然後開啟pdf合併軟體,把要合併的pdf文件都新增到合併列表中。最後按順序調整好pdf檔案位置。設定好就可以點合併按鈕進行合併了。pdf檔案怎麼合併?pdf怎麼合併?怎樣將幾個pdf檔案合併?在日常工作中,我們可能需要會將多個pdf文件合併在一起,...

請問如何將檔案調到北京,請問如何將檔案調到北京?

首先要確定該單位是否解決你的戶口進京問題,如果解決,您需要辦理的是留學生檔案入京 北京落戶方式有很多,不同方式處理檔案問題,但是相同的都是需要檔案接收函。1.北京夫妻兩地分居幹部工人配偶調京,北京單位同意接收函,外地存檔單位同意調出函。2.人才調京配偶隨遷調京同意接收函,3.博士後出站配偶隨遷檔案接...