KCF matlab版修改彩色顯示

2021-09-25 00:17:05 字數 4140 閱讀 4703

**:high-speed tracking with kernelized correlation filters.

準備工作:

下面需要在run_tracker.m中修改路徑

base_path = 'd:\data_seq\';
這裡data_seq為basketball的上一級目錄。 

按理說然後直接輸入run_tracker();就可以跑了,但是出現了如下錯誤

error in precision_plot (line 40)

figure('number','off', 'name',['precisions - ' title])

解決方案

在show_video.m中有這一段**,其中將『number『,』off』刪去

%create window

[fig_h, axes_h, unused, scroll] = videofig(num_frames, @redraw, , , @on_key_press); %#ok, unused outputs

set(fig_h, 'number','off','name', ['tracker - ' video_path])

變成

%create window

[fig_h, axes_h, unused, scroll] = videofig(num_frames, @redraw, , , @on_key_press); %#ok, unused outputs

set(fig_h, 'name', ['tracker - ' video_path])

同時precision_plot.m中同樣將『number『,』off』刪去

if show == 1,

figure('number','off' ,'name',['precisions - ' title])

plot(precisions, 'k-', 'linewidth',2)

xlabel('threshold'), ylabel('precision')

end

變成

if show == 1,

figure('name',['precisions - ' title])

plot(precisions, 'k-', 'linewidth',2)

xlabel('threshold'), ylabel('precision')

end

這樣基本就搞定了,就能執行了。

在show_video.m檔案中加上了一些**

(1) 在**rect_h=;

後加上下面這段**:

fps_h=;%show the frame number

變成

rect_h = ;

fps_h=;%show the frame number

(2)在**%render target bounding box for this frame前加上下面這段**:         

%show the frame number

if isempty(fps_h),  

fps_h=text('position',[5,18], 'string','#1','color','y', 'fontweight','bold', 'fontsize',20,'parent',axes_h);            

end

變成

%show the frame number

if isempty(fps_h),

fps_h=text('position',[5,18], 'string','#1','color','y','fontweight','bold', 'fontsize',20,'parent',axes_h);

end

(3)在**set(rect_h, 'visible', 'on', 'position', boxes);後加上下面這段**:

set(fps_h,'string',strcat('#',num2str(frame)));%show the frame number

變成

set(rect_h, 'visible', 'on', 'position', boxes);

set(fps_h,'string',strcat('#',num2str(frame)));%show the frame number

載入完後,執行主程式就能顯示幀數。

也在show_video.m檔案中修改

先定義

img=;%show color image;
在函式function redraw(frame)裡新增**

img=im;%show color image
並在該函式內修改下面兩處的**,主要是將im替換成img。

im_h = imshow(im, 'border','tight', 'initialmag',200, 'parent',axes_h);%show color image      

set(im_h, 'cdata', im);%show gray image

變成

function redraw(frame)

%render main image

im = imread([video_path img_files]);

img=im;%show color image

% if size(im,3) > 1,

% im = rgb2gray(im);

% end

% if resize_image,

% im = imresize(im, 0.5);

% end

if isempty(im_h), %create image

im_h = imshow(img, 'border','tight', 'initialmag',200, 'parent',axes_h);

else %just update it

set(im_h, 'cdata', im)

end%render target bounding box for this frame

if isempty(fps_h),

fps_h=text('position',[5,18], 'string','#1','color','y', 'fontweight','bold', 'fontsize',20,'parent',axes_h);

endif isempty(rect_h), %create it for the first time

rect_h = rectangle('position',[0,0,1,1], 'edgecolor','g', 'parent',axes_h);

endif ~isempty(boxes),

set(rect_h, 'visible', 'on', 'position', boxes);

set(fps_h,'string',strcat('#',num2str(frame)));%show the frame number

else

set(rect_h, 'visible', 'off');

endend

記得把這個函式裡的這幾句話注釋掉或者刪掉

% 		if size(im,3) > 1,

% im = rgb2gray(im);

% end

% if resize_image,

% im = imresize(im, 0.5);

% end

載入完後,執行主程式就能看到彩色影象。

機房重構個人版 DataGridView顯示資料

datagridview與vb中datagrid控制項的功能十分類似,都是用來顯示資料庫中的資料。下面就我自己的理解,簡單說一下datagridview控制項的使用。datagridview控制項繫結dataset資料集中的資料,可以有兩種實現方式 方法一 datagridview繫結資料來源。方法...

datagridview 修改繫結資料集顯示的問題

呵呵,今天又碰到這個問題了,不過這次要委託回主線程修改不麻煩了,要修改的字段太多了。上網搜了一下,找到了這個 dg.dispatcher.invoke new action dg.items.refresh dg.dispatcher.begininvoke new action dg.items....

8 4修改蒙版

這意味著在蒙版中也只存在著灰度。即使選取了帶有色相的顏色,在蒙版中也會轉為相應的灰度,就如同在alpha通道中遇到的情形一樣 使用移動工具 v 移 層 注意背景層是無法移動的 會發現蒙版也隨之移動,如下左圖。這是因為蒙版與圖層預設是存在著鏈結關係的。針對任何一者的變換 如旋轉 拉伸等,移動也算 操作...