[file_name,pname] = uigetfile('*.avi','Select the M-file');
%选择视频
file_name=[pname file_name];
ojb= VideoReader(file_name);
numFrames = ojb.NumberOfFrames
I = read(ojb,1);%读取第1帧
imshow(I);%显示帧
k = waitforbuttonpress; % 等待鼠标按下
point1 = get(gca,'CurrentPoint'); % 鼠标按下了
finalRect = rbbox; %
point2 = get(gca,'CurrentPoint'); % 鼠标松开了
point1 = point1(1,1:2); % 提取出两个点
point2 = point2(1,1:2);
p1 = min(floor(point1),floor(point2)); % 计算位置
p2 = max(floor(point1),floor(point2));
p3=point2-point1;
offset = abs(floor(point1)-floor(point2)); % offset(1)表示宽,offset(2)表示高
x = [p1(1) p1(1)+offset(1) p1(1)+offset(1) p1(1) p1(1)];
y = [p1(2) p1(2) p1(2)+offset(2) p1(2)+offset(2) p1(2)];
for i=1:numFrames
frame=read(ojb,i);
J = rgb2gray(frame);
I=imcrop(J,[point1,p3]);
subplot(1,2,1);
imshow(J,[]);
title(sprintf('第%d帧视频', i));
hold on;
plot(x,y,'r');
subplot(1,2,2);
imhist(I);
title(sprintf('第%d帧颜色直方图', i));
%灰度就是没有色彩,RGB色彩分量全部相等
%“灰度等级”,范围一般从0到255,白色为255,黑色为0。
end
鼠标选择视频部分区域每帧的颜色直方图(动态显示)
最新推荐文章于 2024-04-28 16:29:40 发布