Я пытаюсь создать график contourf
, но некоторые области массива данных имеют NaN (только в матрице данных, матрицы x и y meshgrid заполнены). Я бы хотел, чтобы эти NaN были прозрачными, и они предназначены для NaNs на границе прямоугольника. Но смежные области NaN внутри матрицы данных являются белыми, а не прозрачными. Ниже приведен пример:
код:
[X Y] = meshgrid(10:50);
Z = X.*Y;
Z(10:30,10:30) = NaN;
figure
imshow(uint8(repmat(1:4:240,[60,1,3])));
hold on;
contourf(X,Y,Z);
colormap jet;
Вывод:
Подсказка:
Добавление вышеуказанного кода с помощью:
% Find Face
set(findobj(h,'FaceColor',[1 1 1]),'FaceAlpha',0))
Найдите белый объект патча и установите его прозрачным. К сожалению, патч под ним заполнен:
Обновление: взятие области NaN
и наложение фонового изображения на результат:
Как вы можете видеть, он не охватывает весь образ. Если я использую imdilate
, он избавляется от белой области, но в то же время также разрушает черную границу, а также немного данных.