Próbuję filtrować obraz w domenie przestrzeni, więc używam funkcji conv2.Niezdefiniowana funkcja "conv2" dla argumentów wejściowych typu "double" i atrybutów "full 3d real". - Matlab
Oto mój kod.
cd /home/samuelpedro/Desktop/APIProject/
close all
clear all
clc
img = imread('coimbra_aerea.jpg');
%figure, imshow(img);
size_img = size(img);
gauss = fspecial('gaussian', [size_img(1) size_img(2)], 50);
%figure, surf(gauss), shading interp
img_double = im2double(img);
filter_g = conv2(gauss,img_double);
mam błąd:
Undefined function 'conv2' for input arguments of type 'double' and attributes 'full 3d
real'.
Error in test (line 18)
filter_g = conv2(gauss,img_double);
teraz zastanawiam, nie mogę używać wizerunku 3 kanałów, co oznacza, kolorowy obraz.
Filtrowanie każdego koloru osobno to świetny pomysł. nie pomyślałem o tym. :) – SamuelNLP
Jeśli chcesz zrobić to szybciej, przekazując obraz wielopłaszczyznowy do imfilter lub od tego pytania robi filtrowanie gaussowskie, do imgaussfilt, będzie szybciej. Obie te funkcje umożliwiają obsługę danych wielopłaszczyznowych bez użycia pętli for. Zobacz moją odpowiedź poniżej, aby uzyskać więcej informacji. –