这是红色代码跟踪对象的一部分视频但是我想跟踪黑色。那么我应该做些什么呢?data = getsnapshot (vid);%现在实时追踪红色的物体%我们必须从th减去红色组件%

3视图(30天)
这是红色代码跟踪对象的一部分视频但是我想跟踪黑色。那么我应该做些什么呢?data = getsnapshot (vid);
%现在实时追踪红色的物体
%我们必须减去红色组件
%从灰度图像中提取图像中的红色部分。
diff_im = imsubtract(数据(:,:1),rgb2gray(数据);
%使用中值滤波器过滤掉噪音
diff_im = medfilt2 (diff_im [3 3]);
%得到的灰度图像转换成一个二进制图像。
diff_im = im2bw (diff_im, 0.18);
%去除所有这些像素小于300 px
diff_im = bwareaopen (diff_im, 300);
%标签图像中所有连接组件。
bw = bwlabel (diff_im 8);
%这里我们做图像斑点分析。
%得到一组属性对于每一个标记的区域。
统计= regionprops (bw,的边界框(“大小),“重心”);
%显示图像
imshow(数据)

接受的答案

图像分析
图像分析 2016年8月14日
摆脱一切,试试这个:
%提取个人红、绿、蓝通道。
redChannel = rgbImage (:: 1);
greenChannel = rgbImage (:: 2);
blueChannel = rgbImage (:: 3);
%定义黑色是少于30(说)在所有颜色通道。
阈值= 30;
blackPixels = (redChannel <阈值)& (greenChannel <阈值)& (blueChannel <阈值);
%标签图像中所有连接组件。
[labeledImage, numRegions] = bwlabel (blackPixels 8);
%这里我们做图像斑点分析。
%得到一组属性对于每一个标记的区域。
统计= regionprops (labeledImage,的边界框(“大小),“重心”);
%显示图像
imshow(数据)
你仍然可以叫bwareaopen()或bwareafilt()如果你想删除区域小于某一地区。

更多的答案(0)

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!