[問題]儲存特定圖片卡住
我想要擷取畫面中有任何變動的圖片
但是在倒數第4行儲存的步驟會卡住
saveas( h , [ 'n' , num2str( n ) , '.jpg' ] )
是我的指令用錯嗎?還是我少了哪個步驟?
以下是我目程式
%% 純粹RGB影像入侵偵測
tic %計時開始
close all %關閉所有(圖)視窗
clear all
clc
vr = VideoReader('0041.wmv'); %讀取影片
Yrgb_g = read(vr,1);
Nfrm_movie = floor(vr.Duration * vr.FrameRate); %影片frame數
area_total=vr.Width*vr.Height; %畫面總面積
start_frame=10; %起始frame
sample_rate=10; %採樣頻率
end_frame=300; %停止frame
for k = start_frame:sample_rate:end_frame
Yrgb1 = read(vr, k); % 讀取當前影像
Yrgb2= read(vr,k-1); %讀取前一張影像
Yrgb_abs =abs( Yrgb2-Yrgb1); %連續影像相減後取絕對值
% Yrgb_abs =abs( Yrgb_g-Yrgb1); %背景影像相減後取絕對值
Ybw= im2bw(Yrgb_abs,0.1); %二值化處理
subplot(2,3,1); imshow(Yrgb1);
title('當前影像');
subplot(2,3,2); imshow(Ybw);
title('RGB二值化');
se=strel('square',60); %設定形態學處理用遮罩
hh=imclose(Ybw,se); %閉合
% hh=imopen(hh,se); %斷開
subplot(2,3,3); imshow(hh);
title('去小團塊前');
area_th=round(area_total*0.004);%依照畫面解析度設定閥值
hh=bwareaopen(hh,area_th); %依照閥值去除小團塊
subplot(2,3,4); imshow(hh);
title('去小團塊後');
mth=nonzeros(hh); %讀取影像中所有非0的值
mth=sum(mth); %加總所有值
if mth>= (area_th) %判斷是否大於閥值
subplot(2,3,5); imshow(hh);
saveas( h , [ 'n' , num2str( n ) , '.jpg' ] );
title('有東西瞬間');
end
end
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 120.107.168.104
MATLAB 近期熱門文章
PTT數位生活區 即時熱門文章