polygon

 1: cvtColor(imgSrc, imgG, CV_BGR2GRAY);
 2: threshold(imgG, imgBW, 100, 255, THRESH_BINARY);
 3: vector<vector<Point>> contours;
 4: vector<Vec4i> hierarchy;
 5:  
 6: findContours(imgBW, contours, hierarchy, RETR_TREE, CV_CHAIN_APPROX_SIMPLE);

me1237guy 發表在 痞客邦 留言(0) 人氣()

image
安裝3.1.0.2504版本C:\Emgu\emgucv-windesktop 3.1.0.2504---------------------------(2) 安裝 emgucv-windesktop-tbb-ipp-icc 3.1.0.2504加速版本C:\Emgu\emgucv-windesktop-tbb-ipp-icc 3.1.0.2504兩個版本差異 x64資料夾 兩個版本在bin資料夾下是一樣的!!很可惜,下面幾張圖是加速的版本跑出來的結果,似乎跟原本跑出來的速度差不多,有些甚至跑不贏原本未加速前,IPP-TBB-ICC版本真是出乎我意料之外@@

me1237guy 發表在 痞客邦 留言(1) 人氣()

blob3
利用PowerPoint製造測試圖片,黑色數字為PPT旋轉角度範例1經過簡單二值化黑色: PPT旋轉角度紅色: OpenCV計算出的角度,可以從第三列開始看起,豎立著的矩形為0度;接著順時鐘轉54度, 然後橫躺矩形為90度;最後轉到120度Contour包覆效果取橢圓的長短軸當面積,不過隨物體旋轉角度更動, 最小包覆面積也會改變斜率>0 : 0°~90°斜率<0 : 90°~180°

me1237guy 發表在 痞客邦 留言(0) 人氣()

image
看了網路上[1]有關Function Pointer, 感覺Function Pointer使用語法很累贅, 於是聯想到typedef來簡化原本累贅的語法double (*PtrFun)(double a, double b)只要前面多加一個typedef, 呼叫上就會變得比較親民typedef double (*PtrFun)(double a, double b)例如我想要一個四則運算的功能PtrFun p[4]{ OperatorAdd, OperatorSub, OperatorMul, OperatorDev };宣告一個PtrFun資料型態,存放四個函式指標(即為函式名稱)

me1237guy 發表在 痞客邦 留言(0) 人氣()

image
先到研華官網下載以下兩個應用程式1. 安裝 COMMON MOTION DRIVER_X86.exe2. 安裝 COMMON MOTION UTILITY EXAMPLES_X86.exe點選桌面連結按下->按鈕後,馬達開始往正方向移動,按下<停止>按鈕停止動作。按下<-按鈕後,馬達開始往負方向移動,按下<停止>按鈕停止動作。

me1237guy 發表在 痞客邦 留言(0) 人氣()

Blob Characteristics
The Objects(BLOB) are sorted by Circularity from small to big(1)  (2)  (3) (4)

me1237guy 發表在 痞客邦 留言(0) 人氣()

 

method=CV_TM_SQDIFF

image

image image

method=CV_TM_SQDIFF_NORMED

image

image image

method=CV_TM_CCORR

image

image image

method=CV_TM_CCORR_NORMEDimage

Normalize真棒! 相較於上一個參數只差別分母(正規化部分), 竟然有這麼神奇的效果

image image

method=CV_TM_CCOEFF

image

image image

method=CV_TM_CCOEFF_NORMED

image

image image

--------------------------------

計算流程: matchTemplate -> normalize-> minMaxLoc

全域最大值: CV_TM_CCORRCV_TM_CCOEFF

全域最小值: CV_TM_SQDIFF



參考資料:

1. Object Detection

me1237guy 發表在 痞客邦 留言(0) 人氣()

image
ActivVisionTool是好幾年前的影像量測工具, 下面這段範例程式看起來像是原廠底層activeX元件沒寫好, 竟然要寫一個GC.Collect()在自身的Live取像程式Event內, 不加入就會發生memory leakage喔!關閉程式, 自動儲存DSC參數檔案儲存: AxAVTView1.ExitApplication(True)確認EnableWriteToDSCFile==True不儲存: AxAVTView1.ExitApplication(False)m_AVTView.SetEnableWriteToDSCFile(FALSE);Keep in mind that the DSC files, which store the settings, reside in the same directory as the executable

me1237guy 發表在 痞客邦 留言(0) 人氣()

image
下圖(A)、(B)、(C)是一般影像處理常見的處理手法,如何撰寫ImgProc blockset讓影像資料,可以像是串流般一直往下進行,本篇將撰寫一個應用範例:將各個獨立影像模組(module)如同積木般堆疊、依照所需要的順序串接,且不限制積木的個數;過程中還能隨時觀看處理前後的結果,甚至恢復上一步(Undo)。裝飾模式(Decorator)[1]: 動態地給一個物件加入一些額外的職責,就增加功能來說,裝飾模式比產生子類別更為靈活。
 1: class ImgProc
 2: {
 3: private Mat m_srcImg;
 4: private Mat m_dstImg;
 5: private ImageBox m_srcImageBox;
 6: private ImageBox m_dstImageBox;
 7: public Mat SourceImage
 8: {
 9: get { return m_srcImg; }
 10: set { m_srcImg = value; }
 11: }
 12: public Mat TargetImage
 13: {
 14: get { return m_dstImg; }
 15: set { m_dstImg = value; }
 16: }
 17:  
 18: public void LoadImage(string filename)
 19: {
 20: m_srcImg = CvInvoke.Imread(filename, LoadImageType.Unchanged);
 21: m_dstImg = m_srcImg.Clone();
 22: }
 23: public virtual void SetSrcImageBox(ImageBox imageBox)
 24: {
 25: m_srcImageBox = imageBox;
 26: }
 27: public virtual void SetDstImageBox(ImageBox imageBox)
 28: {
 29: m_dstImageBox = imageBox;
 30: }
 31: 
 32: public virtual void ShowSrcImage()
 33: {
 34: m_srcImageBox.Image = m_srcImg;
 35: }
 36: public virtual void ShowDstImage()
 37: {
 38: m_dstImageBox.Image = m_dstImg;
 39: }
 40: public virtual void ImageProc()
 41: {
 42:  
 43: }
 44: public virtual void Undo()
 45: {
 46: this.m_dstImg = this.m_srcImg.Clone();
 47: }
 48: }

me1237guy 發表在 痞客邦 留言(0) 人氣()

image

 1: abstract class CashObj
 2: {
 3: public abstract double acceptCash(double money);
 4: }

me1237guy 發表在 痞客邦 留言(0) 人氣()

image
開放封閉原則: 對於擴展是開放的(Open for extension),對於更改是封閉的(Closed for modification)建立抽象來隔離以後發生的同類變化:

me1237guy 發表在 痞客邦 留言(0) 人氣()

image
Download the Maestro Servo Controller Windows Drivers and Software (5MB zip)C:\Program Files (x86)\Pololu\Maestro\C:\Program Files (x86)\Pololu\Maestro\drivers\
參考資料1. https://www.pololu.com/docs/0J40/3.a

me1237guy 發表在 痞客邦 留言(0) 人氣()

Blog Stats
⚠️

成人內容提醒

本部落格內容僅限年滿十八歲者瀏覽。
若您未滿十八歲,請立即離開。

已滿十八歲者,亦請勿將內容提供給未成年人士。