2013年4月14日 星期日

Clustering data sets into unknown number of groups

如何把三維的點集合進行分類,但是幾類是未知的?

Surfing online...
  1. 漫谈 Clustering (5): Hierarchical Clustering  http://blog.pluskid.org/?p=407
  2. Cluster analysis  http://en.wikipedia.org/wiki/Cluster_analysis
  3. Unsupervised Learning — Clustering Analysis  http://c3h3notes.wordpress.com/2010/10/29/unsupervised-learning-clustering-analysis/
  4. Unsupervised clustering with unknown number of clusters   http://stackoverflow.com/questions/10136470/unsupervised-clustering-with-unknown-number-of-clusters
  5. Hierarchical Clustering與K-Means Clustering   http://sls.weco.net/blog/chang/14-nov-2008/11503
  6. Hierarchical clustering algorithm   https://sites.google.com/site/dataclusteringalgorithms/hierarchical-clustering-algorithm
  7. Hierarchical clustering using C++   http://blog.o-x-t.com/2009/01/23/hierarchical_clustering/
  8. HIERARCHICAL CLUSTERING ALGORITHMS   http://cgm.cs.mcgill.ca/~soss/cs644/projects/siourbas/sect5.html
  9. C/C++ Machine Learning Libraries for Clustering   http://stackoverflow.com/questions/815423/c-c-machine-learning-libraries-for-clustering
  10. Agglomerative Clustering?   http://itk-insight-users.2283740.n2.nabble.com/Agglomerative-Clustering-td3342283.html
  11. hierarchical clustering using flann in opencv   http://stackoverflow.com/questions/15549001/hierarchical-clustering-using-flann-in-opencv
  12. Hierarchical k-Means in OpenCV without knowledge of “k”   http://stackoverflow.com/questions/5461357/hierarchical-k-means-in-opencv-without-knowledge-of-k


Lots of algorithm/solution can be googled....I think the most appropriate is ---> Hierarchical clustering

2013年4月6日 星期六

ITK VTK QT OpenCV Coding 架構


主要功能

  • ITK:
    Segmentation, Read in images, Write out images, Blah, Blah....
  • VTK:
    Show image on VTK window, Render 3D model, Blah...
  • Qt:
    Gui, Blah...
  • OpenCV:
    2D Image Processing, Read in 2D image, Write out 2D image, Show 2D image on OpenCV window, Blah...

主要架構

ITK +OpenCV <===> VTK + OpenCV <===> Qt + OpenCV 
  1. 建立一個ITK和OpenCV專用的Class
    負責最主要影像的處理
    會回傳ITK image
    會回傳OpenCV image
  2. 建立專用VTK和OpenCV的Class
    用來收ITK處理後及OpenCV處理後的影像
    會送出VTK image和OpenCV image
  3. 建立Qt的GUI,專門收VTK的影像和OpenCV的影像
    VTK to Qt -> 藉由QVtkWidget顯示
    OpenCV image to Qt Qimage -> 藉由一個轉換的method (在此) ,顯示在QLabel上

Programming   Form User View to Programmer View

Class Q
  • Using Library
    Qt Library -----> Qt widget
    VTK Library -----> QVtkWidget vtkEventQtSlotConnect
    OpenCV Library -----> show QImage from cv::Mat
  • get VTK image
  • get cv::Mat
  • Show on QVtkWidget or QLabel
Class V
  • Using Library
    VTK Library
    OpenCV Library
    ITK Library
  • get ITK image
  • send VTK image
  • get and send cv::Mat
  • CONVERT ITK image to VTK image
  • For cv::Mat, this class is just a relay
Class I
  • Using Library
    ITK Library
    OpenCV Library
  • produce and send ITK image
  • produce and send cv::Mat
[Note : Only the OpenCV Library shows on every Class. It can be excluded if it is not needed.]

還有....

  1. 這三個Class可以在同一個方案下,但是在三個不同的專案中建立。
  2. 三個專案可以個別編譯,不互相影響,利用互相Linking的方式,可以加快編譯的時間,且Class的封裝性更佳!

2013年4月4日 星期四

PCH 警告: 標頭停駐點不可以在巨集或 #if 區塊內


IntelliSense: PCH 警告: 標頭停駐點不可以在巨集或 #if 區塊內。未產生 IntelliSense PCH 檔案。

只要有任何地方Include他,就不會出現了!

http://proglab-justin.blogspot.tw/2012/01/intellisense-pch-warning-header-stop.html