0
Я делаю домашнее задание и проблема. Моя задача - написать функцию в SciLab, которая преобразует нормальное изображение в сепию. Я должен использовать алгоритм, который умножает красный цвет на альфа и синий цвет на бета-версию, где alpha> 1 и beta < 1 и alpha + beta = 2.Обработка изображений в SciLab (конвертирование изображения в сепию)
Это мой код. По некоторым причинам эти 2 строки не работают должным образом:
//img2(i,j,2) = img(i,j);
//img2(i,j,3) = uint8(double(img(i,j))*beta);
function out = Ex2(im,alpha)
[h w d] = size(im);
img2 = uint16(zeros(h,w,d));
img = rgb2gray(im);
beta = 2-alpha;
for i=1:h
for j=1:w
img2(i,j,1) = uint16(double(img(i,j))*alpha); //condition if > 255
if img2(i,j,1) > 255 then
img2(i,j,1) = 255;
end
//img2(i,j,2) = img(i,j);
//img2(i,j,3) = uint8(double(img(i,j))*beta);
end
end
out = img2;
endfunction
дают нам примеры альфа и бета. Также, что с '//'? это не комментарии Matlab. Пожалуйста, отправьте реальную функцию matlab. Я предполагаю, что это может быть scilab? –
Кроме того, если я изменю код, чтобы читать MATLAB, это отлично работает, я получаю очень красивые изображения сепии –
Да, это SciLab, отметили его также как MatLab, потому что, хотя эти 2 программы очень похожи, пример вызова этой функции Ex2 (myimage, 1.2); – Seoner