0
我想將日誌功能應用於圖像。但它無法顯示此錯誤:function is not defined on this type of argument
。scilab - 在圖像上實現日誌功能
uk=imread('image.jpg');
result=log(uk(:,:,1));
我想將日誌功能應用於圖像。但它無法顯示此錯誤:function is not defined on this type of argument
。scilab - 在圖像上實現日誌功能
uk=imread('image.jpg');
result=log(uk(:,:,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));
感謝您的回答。實際上,我的代碼在將矩陣轉換爲double並將全部加1後工作 – user7417788
確保您的圖像轉換爲灰度 –
不,我需要得到三個RGB通道的日誌結果 – user7417788
你得到的錯誤是什麼?也許你正在使用的日誌函數不僅僅是一個標量值的矩陣?同樣當你使用日誌時,你需要確保圖像中沒有任何零,因爲log(0)= undifine更好地做log(uk(:,:1)+ ones(:, :)) –