2013年2月21日 星期四

Build Action 選項



常用的選項:
  • None - 檔案未包含在專案輸出群組中,而且在建置過程中不加以編譯。範例之一是包含文件的文字檔,例如讀我檔案。
  • Compile - 將檔案編譯到建置輸出。這個設定值是用於程式碼檔。
  • Content - 不編譯檔案,但會將其加入內容輸出群組。例如,這個設定值是 .htm 或其他類型 Web 檔的預設值。
  • Embedded Resource - 將檔案以 DLL 或可執行檔嵌入主要專案建置輸出。這個值通常用於資源檔。

例如編譯後需要複製圖片作為資源時的屬性設定:
  • Build Action: Content
  • Copy to Output Directory: Copy always

參考:
http://msdn.microsoft.com/zh-tw/library/0c6xyb66(v=vs.80).aspx

2013年1月16日 星期三

專利搜尋筆記



這陣子在做報告找資料的時候,在某篇文獻中有提到許許多多的專利資料,由於很久沒查專利的資料,把大學教的知識都給忘光光啦,現在趕緊做點筆記以免再次發生這樣的糗事...

專利的一些基礎知識,
完整的專利號碼『WO 2013/012345』分為兩個部分:
1. 國家名稱 -
如:美國專利(US)、世界專利(WO)、歐洲專利(EP)、德國專利(DE)和日本專利(JP)等。
2. 專利號 -
如:2013/012345

好用的搜索網站:
Google Patent - https://www.google.com/?tbm=pts
Espacenet Patent search - https://worldwide.espacenet.com/
WEBPAT - http://webpat.tw/

在搜尋文獻中的專利時會發現可能有專利號但是找不到專利,
這時候不要使用專利號『WO 2009/058656』去搜尋,改由名稱去搜尋,
如首圖專利名稱為『Intra-oral three-dimensional imaging system』,
就在Google Patent搜尋該關鍵字,就有可能找到US版本的專利,
尤其US版本的專利通常是可以在Google Patent下載的。

2013年1月5日 星期六

使用Apache架設Subversion + TortoiseSVN



系統配置:
Windows 7 X64 SP1
Apache Lounge 2.4.3 ssl 0.9.8
PHP 5.4

使用軟體:
svn-win32-1.7.8-ap24.zip (伺服端)
http://sourceforge.net/projects/win32svn/

TortoiseSVN-1.7.11.23600-x64-svn-1.7.8.msi (客戶端)
LanguagePack_1.7.11.23600-x64-zh_TW.msi (中文化)
http://sourceforge.net/projects/tortoisesvn/

在開始之前,請確定您的Apache已經架設完畢可正常運作。


首先安裝SVN伺服端:
1. 複製『svn-win32-1.7.8-ap24.zip』壓縮檔內的 bin/mod_dav_svn.so 與 bin/mod_authz_svn.so 至 Apache 的 modules 目錄下。

2. 在我的電腦 > 進階系統設定 > 進階 > 環境變數 > 系統變數 > 找到Path,
新增一筆變數值並以分號分隔『;D:\svn-win32-1.7.8\bin』

3. 編輯 Apache 設定檔(httpd.conf) 遵照以下指示變更:

3a. 取消註解以下內容:
#LoadModule dav_fs_module modules/mod_dav_fs.so
#LoadModule dav_module modules/mod_dav.so

3b.在LoadModule最後加上以下內容(有順序不可加在前):
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so

3c. 在檔案最底加上以下內容:
<location svn="svn">
DAV svn
SVNPath D:/SVN
</location>

其中『/svn/code』是指要在『http://localhost/svn/code』作為主要的目錄,而『D:/SVN』是指在電腦內所指定要同步的絕對目錄。


安裝SVN客戶端,這裡使用『TortoiseSVN』作為客戶端應用程式。

1. 請依指示安裝『TortoiseSVN-1.7.11.23600-x64-svn-1.7.8.msi』以及『LanguagePack_1.7.11.23600-x64-zh_TW.msi』。

2. 在『D:/』建立一個『SVN』資料夾,在資料夾內按右鍵『建立檔案庫』。


3. 為方便整理,直接在SVN資料夾內新增一個專案資料夾『QQBoxy』,並按右鍵設定取出。


4. 將SVN檔案庫根目錄『http://您的IP或網域/svn』(依需求也可對應子目錄)對應到資料夾即完成同步設定。

若您的Server支援SSL模式,可直接將檔案庫根目錄改為https將具備更高的安全性。

5. 在資料夾按右鍵即可"更新"或"送交"新版資料。


結束。

2013年1月2日 星期三

演算法落實於軟體

The algorithms implemented in the software:
  • Preprocessing (前處理)
    • Blurring (模糊演算)
    • Frequency (頻譜分析)
    • Edge Detection (邊緣檢測)
    • Distortion Reduction (失真減少)
    • Morphological (型態)
    • Geometry (幾何)
  • Segmentation (分割)
    • Clustering (分群法)
      • Fuzzy K-means
      • Markov Random Field
    • Region Growing (區域成長)
    • Level Set (水平集法)
      • Laplacian
      • Canny
      • Threshold
      • Geodesic Active Contour
    • Thresholding (閾(ㄩˋ)值/臨界值)
  • Registration (定位)
    • Transformation (轉換)
      • Rigid (硬組織)
        • Translation
        • Scaling
        • Affine
        • Euler
        • Similarity
      • Non-Rigid (軟組織)
        • B-spline Deformable (B-spline變形)
    • Metric (量測)
      • Label Map (標籤地圖)
        • Match Cardinality
        • Kappa Statistics
      • Multi-Modality (多模態分析)
        • Mutual Information
        • Normalized Mutual Information
        • Gradient Difference
      • Single Modality (單模態分析)
        • Mean Square
        • Normalized Correlation
        • Mean Reciprocal Square
        • Difference
    • Optimizer (最佳化)
      • Gradient Based (梯度法)
        • Gradient Descent
        • Regular Step Gradient Descent
        • BFGS
      • Global Optimizers (全域最佳化)
        • Non-Probabilistic (非機率)
          • One Plus One Evolutionary
        • Probabilistic (機率)
          • SPSA
          • Powell
          • Amoeba
    • Interpolator (插補器)
      • Nearest Neighborhood
      • Linear
      • Bsline (order 2-5)

此為醫學領域在軟體上常用的演算法。
參考文獻來源:
Web-based interactive 2D/3D medical image processing and visualization software

2012年11月15日 星期四

C# WPF OpenGL using SharpGL



動態教學:Open

開發環境:
Visual Studio 2010
SharpGL 2.0 - SharpGL Binaries.zip
(SharpGL is a C# library that allows you to use OpenGL in your .NET Framework based application with ease!)

WPF (MainWindow.xaml):
<Window x:Class="WPFOpenGL.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:sharpGL="clr-namespace:SharpGL.WPF;assembly=SharpGL.WPF"
        Title="MainWindow" Height="350" Width="525">
    <Grid>
        <sharpGL:OpenGLControl OpenGLDraw="OpenGLControl_OpenGLDraw" />
    </Grid>
</Window>

C# (MainWindow.xaml.cs):
using System;
using System;
using System.Windows;
using System.Windows.Input;
using SharpGL;

namespace WPFOpenGL
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }

        private void OpenGLControl_OpenGLDraw(object sender, SharpGL.SceneGraph.OpenGLEventArgs args)
        {
            //  Get the OpenGL instance that's been passed to us.
            OpenGL gl = args.OpenGL;

            //  Clear the color and depth buffers.
            gl.Clear(OpenGL.GL_COLOR_BUFFER_BIT | OpenGL.GL_DEPTH_BUFFER_BIT);

            //  Reset the modelview matrix.
            gl.LoadIdentity();

            //  Move the geometry into a fairly central position.
            gl.Translate(-1.5f, 0.0f, -6.0f);

            //  Draw a pyramid. First, rotate the modelview matrix.
            gl.Rotate(rotatePyramid, 0.0f, 1.0f, 0.0f);

            //  Start drawing triangles.
            gl.Begin(OpenGL.GL_TRIANGLES);

            gl.Color(1.0f, 0.0f, 0.0f);
            gl.Vertex(0.0f, 1.0f, 0.0f);
            gl.Color(0.0f, 1.0f, 0.0f);
            gl.Vertex(-1.0f, -1.0f, 1.0f);
            gl.Color(0.0f, 0.0f, 1.0f);
            gl.Vertex(1.0f, -1.0f, 1.0f);

            gl.Color(1.0f, 0.0f, 0.0f);
            gl.Vertex(0.0f, 1.0f, 0.0f);
            gl.Color(0.0f, 0.0f, 1.0f);
            gl.Vertex(1.0f, -1.0f, 1.0f);
            gl.Color(0.0f, 1.0f, 0.0f);
            gl.Vertex(1.0f, -1.0f, -1.0f);

            gl.Color(1.0f, 0.0f, 0.0f);
            gl.Vertex(0.0f, 1.0f, 0.0f);
            gl.Color(0.0f, 1.0f, 0.0f);
            gl.Vertex(1.0f, -1.0f, -1.0f);
            gl.Color(0.0f, 0.0f, 1.0f);
            gl.Vertex(-1.0f, -1.0f, -1.0f);

            gl.Color(1.0f, 0.0f, 0.0f);
            gl.Vertex(0.0f, 1.0f, 0.0f);
            gl.Color(0.0f, 0.0f, 1.0f);
            gl.Vertex(-1.0f, -1.0f, -1.0f);
            gl.Color(0.0f, 1.0f, 0.0f);
            gl.Vertex(-1.0f, -1.0f, 1.0f);

            gl.End();

            //  Reset the modelview.
            gl.LoadIdentity();

            //  Move into a more central position.
            gl.Translate(1.5f, 0.0f, -7.0f);

            //  Rotate the cube.
            gl.Rotate(rquad, 1.0f, 1.0f, 1.0f);

            //  Provide the cube colors and geometry.
            gl.Begin(OpenGL.GL_QUADS);

            gl.Color(0.0f, 1.0f, 0.0f);
            gl.Vertex(1.0f, 1.0f, -1.0f);
            gl.Vertex(-1.0f, 1.0f, -1.0f);
            gl.Vertex(-1.0f, 1.0f, 1.0f);
            gl.Vertex(1.0f, 1.0f, 1.0f);

            gl.Color(1.0f, 0.5f, 0.0f);
            gl.Vertex(1.0f, -1.0f, 1.0f);
            gl.Vertex(-1.0f, -1.0f, 1.0f);
            gl.Vertex(-1.0f, -1.0f, -1.0f);
            gl.Vertex(1.0f, -1.0f, -1.0f);

            gl.Color(1.0f, 0.0f, 0.0f);
            gl.Vertex(1.0f, 1.0f, 1.0f);
            gl.Vertex(-1.0f, 1.0f, 1.0f);
            gl.Vertex(-1.0f, -1.0f, 1.0f);
            gl.Vertex(1.0f, -1.0f, 1.0f);

            gl.Color(1.0f, 1.0f, 0.0f);
            gl.Vertex(1.0f, -1.0f, -1.0f);
            gl.Vertex(-1.0f, -1.0f, -1.0f);
            gl.Vertex(-1.0f, 1.0f, -1.0f);
            gl.Vertex(1.0f, 1.0f, -1.0f);

            gl.Color(0.0f, 0.0f, 1.0f);
            gl.Vertex(-1.0f, 1.0f, 1.0f);
            gl.Vertex(-1.0f, 1.0f, -1.0f);
            gl.Vertex(-1.0f, -1.0f, -1.0f);
            gl.Vertex(-1.0f, -1.0f, 1.0f);

            gl.Color(1.0f, 0.0f, 1.0f);
            gl.Vertex(1.0f, 1.0f, -1.0f);
            gl.Vertex(1.0f, 1.0f, 1.0f);
            gl.Vertex(1.0f, -1.0f, 1.0f);
            gl.Vertex(1.0f, -1.0f, -1.0f);

            gl.End();

            //  Flush OpenGL.
            gl.Flush();

            //  Rotate the geometry a bit.
            rotatePyramid += 3.0f;
            rquad -= 3.0f;
        }
        float rotatePyramid = 0;
        float rquad = 0; 
    }
}

Reference: Using OpenGL in a WPF Application

2012年10月17日 星期三

VC++啟動OpenMP



如圖所示,將選項選為『Yes (/openmp)』即可。

查詢期刊論文IF(Impact Factor)值

影響係數:Impact Factor

如果妳不在學校時:
http://impactfactor.cn/

如果妳在學校時:

網址已改:http://jcr.incites.thomsonreuters.com/

Web of Knowledge網站:http://wokinfo.com/

其工具就藏在...


再進到這裡...


就是它了。