作者yjha (叶子红)
看板MATLAB
标题[问题] imread 相关问题
时间Fri Mar 1 17:49:58 2013
小弟只是个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
1F:推 yfr:改用sqrt ? 03/01 20:39
2F:推 sunev:转型成double 03/01 21:10
3F:推 vincent59:接楼上的a=double(所读的影像矩阵); 03/01 21:37
4F:→ mikker:就像写c时 char跟double 型态不同 运算结果会出乎预料 03/02 00:16
5F:推 gozelee:如果还是不行的话.看一下a矩阵大小.(:,:,3)不能点乘 03/02 12:58
6F:→ yjha:转成double之後就可以了! 感谢各位 03/05 16:07