Мне нужно создать контрастную карту об изображении. Метод прост: оцените контраст (C = SD/среднее) в окне 5x5 (скользящее). Переместите пиксель окна по пикселю через весь рисунок и сохраните результаты в новой матрице.Оценка контраста изображения. Как ускорить этот код?
Я создал этот скрипт для решения проблемы, но это слишком медленно. Базовое изображение представляет собой 16-битное изображение .tif 1024x1024. Процесс составляет ~ 40-50 секунд, но другие программы решают его менее чем за 3 секунды. Как ускорить мой скрипт?
Мой оригинальный сценарий:
M=imread('image.tif');
for S=1:2 SM1_b=size(M,1); SM2_b=size(M,2);
M(:,SM2_b+1)=M(:,SM2_b);
M(SM1_b+1,:)=[M(SM1_b,1:SM2_b) M(SM1_b,SM2_b)];
end
M=[M(1,1:SM2_b+1);M(1,1:SM2_b+1);M]; M=[M(1:(size(M,1)),1) M(1:(size(M,1)),1) M]; clear S SM1_b SM2_b
KPic=zeros(1024);
for i=1:1024 for j=1:1024
KPic(i,j)=std2(M(i:i+4,j:j+4))/mean2(M(i:i+4,j:j+4));
end
end
На каком языке вы владеете? – Dmitry
Похож на matlab/октаву. – MSalters