2017-01-17 49 views
0

我想將日誌功能應用於圖像。但它無法顯示此錯誤:function is not defined on this type of argumentscilab - 在圖像上實現日誌功能

uk=imread('image.jpg'); 
result=log(uk(:,:,1)); 
+0

確保您的圖像轉換爲灰度 –

+0

不,我需要得到三個RGB通道的日誌結果 – user7417788

+0

你得到的錯誤是什麼?也許你正在使用的日誌函數不僅僅是一個標量值的矩陣?同樣當你使用日誌時,你需要確保圖像中沒有任何零,因爲log(0)= undifine更好地做log(uk(:,:1)+ ones(:, :)) –

回答

1

我覺得你的問題是imread返回uint8類型的矩陣。要申請log,您應該將其轉換爲double。至少有2種方式來做到這一點,一個內置的,和一個從SIVP:

clc; 
clear; 
im = imread("d:\Attila\PROJECTS\Scilab\Stackoverflow\mixer_crop.jpg"); 
//imshow(im); 
disp(typeof(im(:,:,1)),"Original type:"); 

//use double 
M = double(im(:,:,1)); 
disp(typeof(M),"Modified type:"); 
result=log(M); 
//imshow(uint8(M)); 

//use im2double 
M2 = im2double(im); 
disp(typeof(M2(:,:,1)),"Modified type 2:"); 
result=log(M2(:,:,1)); 
//imshow(im2uint8(M2)); 
+0

感謝您的回答。實際上,我的代碼在將矩陣轉換爲double並將全部加1後工作 – user7417788