实际上我正在研究这个算法,我一直在探索他的代码(目前在Matlab中)。我想知道是否有人尝试过运行此算法,有人可以指出我如何在彩色/ RGB模式下跟踪对象。目前,当我运行它时,它会以灰度模式检测对象。
TLD代码是开源的,位于:https://github.com/zk00006/OpenTLD
据我研究过的代码,有一个文件img_alloc.m,其中包含:
function img = img_alloc(in,imsize)
% Allocates image structure.
if ischar(in)
in = imread(in);
end
if ndims(in) == 3
img.input = rgb2gray(in);
else
img.input = in;
end
%img.input = fliplr(img.input);
if exist('imsize','var')
img.input = imresize(img.input,imsize);
end
img.blur = img_blur(img.input,2);
声明“img.input = rgb2gray(in);”将输入从rgb转换为灰度模式。当我试图通过将其更改为“img.input = in;”来阻止它时程序以RGB模式启动,但在1或2帧后卡住。
非常感谢任何帮助。
P.S:我是Matlab编程的新手。
答案 0 :(得分:3)
这段代码告诉我算法(或至少这个代码)不处理RGB图像。完全没有。
我怀疑这是因为它明确检查输入是1D(灰度)还是3D(RGB),如果是3D,则将其转换为灰度。
此外,使用算法处理颜色很少只是为了提供3D矩阵而不是1D矩阵,因为额外的维度通常意味着至少需要一些额外的工作。
答案 1 :(得分:0)
有两个组件需要修复: 1. 1BIT功能 - 你必须使它们适用于不同的颜色平面(也就是说,每个特征都必须在其中一个平面上) 2. Lucas Kanade跟踪器;它实际上在颜色方面效果更好(如果你的输入没有嘈杂;你需要一个质量更好的相机而不是灰度),但捕食者使用的OpenCV不包括版本。 (不,我不知道开源软件是否可用)。