鼠标选择视频部分区域每帧的颜色直方图(动态显示)

[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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值