[問題] imread 相關問題

看板MATLAB作者 (葉子紅)時間11年前 (2013/03/01 17:50), 編輯推噓4(402)
留言6則, 6人參與, 最新討論串1/1
小弟只是個matlab新手 最近在寫一個程式 主要目的是將圖讀進去matlab運算之後再做圖來分析 但是運算裡面有用到開耕號 程式碼出現error 如下列所示 ??? Error using ==> power Integers can only be raised to positive integral powers. google一下知道矩陣圖裡值一定要是0~255整數 而以下是我寫到一半的程式碼 clear all %cos=(I-I1-I2)/2*[(I1*I2).^0.5] a=imread('D:\ych\0.0.jpg'); b=imread('D:\ych\0.0-.jpg'); c=imread('D:\ych\0.0+.jpg'); d=(c-a-b)./(2.*((a.*b).^0.5)) 主要問題是出在 (a.*b).^0.5 但是因為最後d的值應該會介於-1~1 所以也不敢讓它近似最近的整數 怕誤差會很大 請教板上各位高手~有沒有其他指令可以改進這個程式呢 感謝! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.101.4

03/01 20:39, , 1F
改用sqrt ?
03/01 20:39, 1F

03/01 21:10, , 2F
轉型成double
03/01 21:10, 2F

03/01 21:37, , 3F
接樓上的a=double(所讀的影像矩陣);
03/01 21:37, 3F

03/02 00:16, , 4F
就像寫c時 char跟double 型態不同 運算結果會出乎預料
03/02 00:16, 4F

03/02 12:58, , 5F
如果還是不行的話.看一下a矩陣大小.(:,:,3)不能點乘
03/02 12:58, 5F

03/05 16:07, , 6F
轉成double之後就可以了! 感謝各位
03/05 16:07, 6F
文章代碼(AID): #1HC7d98T (MATLAB)