[問題]迴圈

看板MATLAB作者 (一碗陽春麵)時間12年前 (2013/04/28 12:25), 編輯推噓2(203)
留言5則, 1人參與, 最新討論串1/1
以下是我的程式碼 str1 = 'D:\20121025\a-g-p-'; str2 = '.tif'; str3 = 'D:\20121025\a-g-v-'; for n = 0:1:5 string1 = [str1,num2str(n),str2]; string2 = [str3,num2str(n),str2]; a = imread(eval('string1')); b = imread(eval('string2')); c = rgb2gray(a); d = rgb2gray(b); %figure,imagesc(b); %[x,y]= ginput(1); fluorescenceP(n+1)=c(24,133); fluorescenceV(n+1)=d(173,120); 問題1----> anisotropy(n+1) = ((fluorescenceP(n+1)-fluorescenceV(n+1)))/(fluorescenceP(n+1)+2*(fluorescenceV(n+1))); %anisotropy的定義公式 問題2----> g(n+1)=anisotropy(n+1); 請教各位最後兩行的部分,我顯示fluorescenceP時會有[205,159,103,21,8,0] fluorescenceV是[166,142,50,13,0,0],但是利用最後anisotropy(n+1)來算時 就顯示[0,0,0,0,1,0],請問我該怎麼修改??? 感謝!!! 補上 最後數值應該是 [0.072,0.038,0.261,0.17,1,0] -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 223.138.171.26 ※ 編輯: jacy840708 來自: 223.138.171.26 (04/28 12:28)

04/28 13:45, , 1F
因為 imread 讀進來為 uint8,會變成整數除法,需轉成 double
04/28 13:45, 1F

04/28 13:46, , 2F
a = double(imread(string1)); % 不需要用 eval
04/28 13:46, 2F

04/28 13:47, , 3F
b = double(imread(string2));
04/28 13:47, 3F
感謝CBET,但是我修改後fluorescenceP跟V在影像上取的數值全變成0跟1,我依舊還是 疑問在為什麼anisotropy(n+1)算出的數值,無法以小數來顯示。可否再勞煩您提供協助 ,感謝。 ※ 編輯: jacy840708 來自: 223.138.171.26 (04/28 17:26)

04/28 22:27, , 4F
抱歉,沒注意到 rgb2gray,請改成在 rgb2gray 後轉 double
04/28 22:27, 4F

04/28 22:28, , 5F
a = imread(string1); c = double(rgb2gray(a));
04/28 22:28, 5F
文章代碼(AID): #1HVAJDCD (MATLAB)