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));
我想对图像应用日志功能。但它未能显示此错误: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));