scilab - 在图像上实现日志功能

scilab - Implementing log function on images

我想对图像应用日志功能。但它未能显示此错误:function is not defined on this type of argument.

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

我认为你的问题是 imread returns uint8 类型的矩阵。要应用 log,您应该将其转换为 double。至少有两种方法可以做到这一点,一种是内置的,另一种来自 SIVP:

clc;
clear;
im = imread("d:\Attila\PROJECTS\Scilab\Whosebug\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));