作者gotohalf (大米儿)
看板MATLAB
标题[问题]有关影像矩阵开次方的问题
时间Sat Mar 31 15:07:26 2012
这是我的程式码
function Gamatest(hObject,handles)
s1 = handles.s1;
[m n] = size(handles.img1);
imgR = uint8(handles.img1(:,:,1));
imgG = uint8(handles.img1(:,:,2));
imgB = uint8(handles.img1(:,:,3));
img2R = (imgR/255).^s1;
img2G = (imgG/255).^s1;
img2B = (imgB/255).^s1;
img2(:,:,1) = img2R;
img2(:,:,2) = img2G;
img2(:,:,3) = img2B;
axes(handles.axes1);
imshow(img2);
----------------------------------------
img1是我读进的图档
我把他分解成RGB三个矩阵
然後再img2R img2G img2B做GAMMA 修正
但是我现在执行的时候跑出错误
"??? Integers can only be raised to positive integral powers."
是哪里的资料类型出错了吗
我知道有imajust这个函式可以用
但是我只想知道 我这样写是哪里出问题了
感谢
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 1.160.218.133
1F:→ gotohalf:忘了说 S1 是GUI滑杆的值 03/31 15:08
2F:推 vincent59:double(img1) 03/31 20:23
3F:→ vincent59:本来我打了一长串,因为我觉得你(你)的gui code有问题 03/31 20:24
4F:推 vincent59:其实你可以不用分成 R、G、B三个做运算 04/01 00:48
5F:推 vincent59:运算式要再乘255,否则以你目前写的应该是1片黑 04/01 00:52
6F:→ gotohalf:感谢! 我写出来了 正规化完忘记乘尺度 04/01 12:47
7F:→ gotohalf:影像最後把RGB合成是不是只能把他的资料转成uint8阿 04/01 12:48
8F:推 vincent59:根据我的经验在大部分情况的确是这样 04/01 15:16
9F:→ vincent59:总之在成像上 数值范围:0~255 04/01 15:17
10F:推 vincent59:当然有个有趣发现可以跟您分享 04/01 15:50
11F:→ vincent59:img=imread('lena.jpg');%读档 04/01 15:51
12F:→ vincent59: img2=(double(img)/255).^(1.4); 04/01 15:51
13F:→ vincent59:imshow(img2) 04/01 15:52
14F:→ vincent59:这样就可以正确成像了 04/01 15:52
15F:→ gotohalf:感谢高人指点!!! 04/02 01:40