나는 실험 한 이미지 (100)가 들어있는 폴더가 있습니다. 또한 탐지기의 배경 이미지 (100도 포함)가있는 다른 폴더가 있습니다. 나는이 같은 수행하는 코드를 작성했습니다Matlab 이미지 프로세싱
:
% Define images directory
% Define detector bg directory
% Loop over each frame and do some processing
for a=1:length(image directory)
%read files from directory
bg_corrected_image = frame#-bg_image# % # begins with 1
n=size(image directory)
new_images=zeros(n)
% Now sort through each pixel in bg_corrected image and assign value according to a criterion
for ii=1:size(bg_corrected_image,1)
jj=1:size(bg_corrected_image,2)
pixel=bg_corrected_image(ii,jj);
if pixel>500
pix_mod=0;
elseif pixel<30
pix_mod=0;
else
pix_mod=pixel;
end
new_image(ii,jj)=pix_mod;
end
******************* CODE TO SAVE IMAGE AND NOT OVERWRITE AFTER EACH
ITERATION OF LOOP?
end
내가 지금하고 싶은 것은이식이 요법을 정렬 화소를 통과 한 후 각각의 이미지 (프레임)을 저장하는 것입니다 그래서 난 그냥 수 루프가 끝난 후에 모두 합계하십시오. 나는 그것을하기위한 최선의 방법이 무엇인지 너무 확신하지 못한다. 내가해야 할 일은 각 반복 후에 "new_image"를 저장하는 셀 배열을 만드는 것인데, 그 코드는 내가 asterik을 배치해야하는 곳으로 가야한다고 생각한다. 이전에 코드에 이미지를 저장하고 싶지는 않습니다. 어떤 도움을 많이 주셨습니다.
당신은 루프 대신 matlab에서 벡터화를 사용해보십시오. 당신은 한 줄에 루프를 대체 할 이미지 처리 매트릭스에서 기능을 사용할 수 있습니다 (나는 matlab에 몇 년 동안 작성하지 않은, 그래서 특정하지 사과드립니다) – chook
예, 내가 생각한 후에 모든 것을 vectorise 것입니다 for 루프에서 처음으로 코드를 작업하는 방법. 감사. – user3673737
'new_images = zeros (n, n, numel (이미지 디렉토리))'와 나중에'new_image (ii, jj, a) = pix_mod;'에 3D 행렬로 저장하십시오. 그것이 당신을 위해 작동하는지 알려주세요! – Divakar