作者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