發表文章

目前顯示的是 9月, 2016的文章

emgucv_基礎畫圖著色筆記_row-major_vs_column-major

圖片
簡易視窗配置 如何鎖住  imageBox 物件的 滾輪自動放大縮小功能 以及 右鍵  作效果等功能 右側  --->  找到  Functional Mode 把 預設的 Everything 改成 這樣可以將emgucv  imageBox物件提供的右鍵及滾輪縮放等功能先鎖住!!!!!! 練習畫圖的部分 第一階段程式碼 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using Emgu.CV; using Emgu.CV.Structure; using Emgu.Util; using Emgu.CV.ML; namespace emgucv_note { public partial class Form1 : Form { public Form1() { InitializeComponent(); Image<Bgr, byte> imgBg = new Image<Bgr, byte>(512, 512); //畫布 空的 預設黑色 //備註: Image<Gray, byte> 預設也是黑色喔!!! imageBox1.Image = imgBg; } } } 怎麼改變畫布顏色呢??                                                                             示意圖 第二階段程式碼 _改變背景色  第一種寫法 imgBg.Data[i

系統破密_離線破密_筆記

圖片
要破密首先要抓到密文 -->要先知道明文-->所以使用LCP這個工具產生密文 載點: http://www.lcpsoft.com/english/index.htm https:www.tobtu.com ====================================================================== 暴力破密 -->一定有字元集 字元集愈多 --> 排列組合就愈多 根據字元集和字元長度去嘗試所有排列組合 暴力破密的速度 26      + 10 (英文A)    (數字0~9)  --> 36的 7 次方   這麼多種組合 每秒可以try 三百萬個 key(字) 一般電腦破密 大約  七個小時左右 ====================================================================== 字典破密(Dictionary attack) 一定要有一個 字典檔 是一個文字檔 可在不同破密工具使用(字典檔可以收集,可以共用) 字典檔愈大破密機率愈高 基本上我們是看他的字數 在LCP當中的 可以調整 double word 增加排列組合 最常見的離線型破密  就是用  暴力跟字典 系統的密碼檔在 C:\Windows\System32\config\SAM SAM檔---->存密碼 獲取這台電腦的密碼 這個檔案編碼過非文字檔 電腦系統打開(開機)後 , 系統會鎖住這個SAM檔案 用另外一片光碟開機 ---->  Kaili 用工具讀這個資料 不可以用本機去處理

Motion History Image_演算法流程圖

圖片
程式碼精簡化過後 #include "opencv2/video/tracking.hpp" #include "opencv2/highgui/highgui.hpp" #include "opencv2/imgproc/imgproc_c.h" #include <time.h> // for CLOCKS_PER_SEC 及 clock() #include <stdio.h> #include <ctype.h> // various tracking parameters (in seconds) const double MHI_DURATION = 3;//1s 為運動跟踪的最大持續時間 // number of cyclic frame buffer used for motion detection // (should, probably, depend on FPS) const int N = 5;//frame buffer當中你要存取的frame數 // ring image buffer IplImage **buf = 0; // 創建 frame buffer , 型態為IplImage * buf 的 Array int last = 0; // temporary images IplImage *mhi = 0; // MHI IplImage *mask = 0; // valid orientation mask //用來建立一個指定大小的記憶體區塊,若為0, //則建立的記憶體區塊大小依照預設值為64k // parameters: // img - input video frame // dst - resultant motion picture // args - optional parameters static void update_mhi(IplImage* img, IplImage* dst, int diff_threshold) { double timestamp = (double)clock() / CLOCKS_PER_SEC;

opencv_MHI_深入研究

圖片
MHI 最初是由 Bobick 和 Davis 提出的, 在此之前, Bobick 和 Davis 首先提出了二值的運動能量圖 ( Motion Energy Image , MEI ),通過描述物體如何移動和運動在空間中發生的位置, 來進行基於運動的物體識別。 運動能量圖顯示了運動的輪廓和能量的空間分佈。 在運動能量圖的基礎上產生了運動歷史圖( Motion History Image , MHI )。 運動歷史圖是一種基於視覺的模板方法,通過計算時間段內同一位置的像素變化, 將目標運動情況以圖像亮度的形式表現出來。 其每個像素的灰度值表示了在一組視頻序列中該位置像素的最近的運動情況。 最後運動的時刻越接近當前幀,該像素的灰度值越高。 因此, MHI 圖像可以表徵人體在一個動作過程中最近的動作情況, 這使得 MHI 被廣 ​​泛應用於動作識別領域。 設 H 為運動歷史圖像素的強度值, H (x, y, t) 可以由更新函數計算得出: 式中, (x, y) 和 t 為像素點的位置及時間; ( tau )  【 念法: ʹtau  】:  τ(小寫) 為持續時間, 代表 「一個時間區間」 ,從幀數的角度決定了​​運動的時間範圍 Ψ( psi ) /【 念法: ʹpsaɪ 】 :  Ψ(x, y, t)為更新函數, 可由幀間差(Frame Difference)或光流(Optical Flow)等多種方法定義 δ( delta )  /  【 念法:   ʹdɛltə  】  : 為衰退參數 (1)      mhi(x,y) = timestamp if silhouette(x,y)!=0. 即當運動輪廓圖像在坐標 (x,y) 處不為零時,那麼將 mhi 在 (x,y) 處打上時間標記 timestamp. (2)      mhi(x,y) = 0 if silhouette(x, y) = 0 and mhi(x,y) < (timestamp - duration). 由於 timestamp 是在不斷隨著時間增長的,所以發生過運動的像素點維持的   最長時間為 duration. 當 mhi(x,y) 保持的時間超過 durati

Advanced_C#_Skill_Task Parallel Library_vs_Lambda Expressions_任務和線程差在哪裡?線程池又是捨麼??

圖片
在我們了解Task之前 對於多線程,我們經常使用的是Thread 如果我們要使用多核的功能可能就會自己來開線程, 然而這種線程模型在.net 4.0之後被一種稱為基於「任務的編程模型」所沖擊, 原因在於  task會比thread所需消耗的性能來的更小 不過大家肯定會有疑惑,任務和線程到底有什麽區別呢? Threads (線程/執行緒) Threads are real OS thread with own its stack and resources. Threads allow to developer be fully controlled (by using Resume(), Suspend() or Abort() and etc). The problem is that threads are "time hungry" entities, which means that they will consume non trivial time at creation stage. In additional we should take in consideration time for context switching overhead performed by CPU. Task (任務) Task is class introduces as part of TPL [Task Paralel Library] and it came with CLR 4.0.  Task represent compromise of above cases. It relays on TaskScheduler which in his turn working against ThreadPool. Task able to return result after it completes (unlike ThreadPool). In addition we can run another task immediately when first one is completes. Task and Thread Let us first understa