2016年1月20日 星期三

[OpenCV C++] GrabCut 介紹

        OpenCV 中的GrabCut算法是依據《"GrabCut" - Interactive Foreground Extraction using Iterated Graph Cuts》這篇文章來實現的。該算法利用了圖像中的顏色和邊界,只要少量的交互操作即可得到比較好的分割結果。

            GrabCut,主要功能是分割前景和背景。
         1)你只需要在目標外面畫一​​個框,把目標框住,它就可以完成良好的分割:

  2)如果增加額外的用戶交互(利用標記來指定前背景),那麼效果就可以更完美:

缺點
1.          如果背景比較複  雜或者背景和目標相似度很大,那分割就不太好了
2.          速度有點慢。

             GrabCut 函式定義
void grabCut(InputArray img, InputOutputArray mask, Rect rect,
                             InputOutputArray bgdModel, InputOutputArray fgdModel,
                             int iterCount, int mode=GC_EVAL )
            img:待分割的來源圖,必须是83通道(CV_8UC3)图像,在處理過程中不會被修改;
           mask:遮掩圖像,大小和原圖一致。可以有如下幾種參數:
                    GC_BGD=0),背景;
                    GC_FGD=1),前景;
                    GC_PR_BGD=2),可能的背景;
                    GC_PR_FGD=3),可能的前景。
             rect:限定需要進行分割的圖像範圍,只有該矩形內部可以進行處理
             bgdModel:背景模型,如果為null,函数内部會自己創建一個bgdModel(背景模組)
             fgdModel:前景模型,如果為null,函数内部會自己創建一個fgdModel(前景模組)
             iterCount:迭代次數,必须大於0(越高分越準,但會影響處理時間)
             mode:用於指示grabCut函式進行什麼操作。可以有如下幾種選擇:
                    GC_INIT_WITH_RECT=0),用矩形窗初始化GrabCut
                    GC_INIT_WITH_MASK=1),用被遮蓋的圖初始化GrabCut








2016年1月19日 星期二

[Android] Usb debug can't find device

因為換了一台新電腦,然後發現我在用 USB進行 DEBUG 時候,一直沒罷法抓到裝置,後來發現是因為新電腦沒辦法抓到新的 Driver



[解決方法] Make your own driver

       1.Go to Dedevice manager and find the hardware id code(先到裝置找到硬體描述碼)
              


     2.Go to this path to rewrite this file ( 修改這份資料)
              \Android\android-sdk\extras\google\usb_driver\android_winusb.inf  


     3.Write down the following below  [Google.NTx86] or  [Google.NTamd64]
         (在 [Google.NTx86] 底下,或是 [Google.NTamd64]  底下加入兩行)

                        ;Samsung S3
                       %CompositeAdbInterface%     = USB_Install, USB\VID_04E8&PID_6860&MI_03

                         ps:Samsung S3 隨便取    USB\VID_04E8&PID_6860&MI_03 硬體碼部分

    4.Renew the Driver (更新驅動)

    5.Choose the file path.(選擇位置)
                                        
\

   6.Everything has done!!


    ˋ


        

2015年12月24日 星期四

[Project-web]Front end web final project

這是一堂網頁設計的期末專題
雖然老師進度緩慢,但是我從零到有,並偷懶從bootstrap開始學起,從中真的學到非常多的東西,像是html 相關標籤語言,利用css來達成美化和版面配置,最後一些滑動點擊事件處理利用jQuery,很開心完成自己從以前就想學習怎麼實作的想法,感謝自己有勇氣修這堂課.

This is my web design courses final project.
In this part we are going to show the front end part.Although teacher taught in a slow way, I learn how to use bootstrap by making my web!!
From zero to 100%.It's really a fantastic thing!!!!


2015年11月26日 星期四

[Android] EditText close the default pop-out keyboard 關閉鍵盤自動跳出

Method: 
在AndroidMainfest.xml中把windowSoftInputMode把屬性設成
adjustUnspecified|stateHidden

Go to Mainfest.xml choose your activity and type android:windowSoftInputMode="adjustUnspecified|stateHidden"

< activity android:name=" .Main " 
android:label="@string/app_name" 
android:windowSoftInputMode="adjustUnspecified|stateHidden" > 
< intent-filter> 
< action android:name="android.intent.action.MAIN" /> 
< category android:name="android.intent.category.LAUNCHER" /> 
< /intent-filter> 
< /activity>  

2015年11月17日 星期二

[OpenCV C++]Load Image 圖片開啟

cvLoadImage()

載入圖片的意思 IplImage* cvLoadImage("檔案名稱",參數); 參數的部份可以參考命名規則的說明,回傳的訊息是IplImage資料結構,它的參數分類有 #define CV_LOAD_IMAGE_UNCHANGED -1 原圖影像 #define CV_LOAD_IMAGE_GRAYSCALE 0 灰階 #define CV_LOAD_IMAGE_COLOR 1 彩色 #define CV_LOAD_IMAGE_ANYDEPTH 2 任何彩度 #define CV_LOAD_IMAGE_ANYCOLOR 4 任何彩色

cvNamedWindow()

cvNamedWindow("視窗名稱",參數);
而它的參數實質上只有一個
AUTOSIZE可以讓圖片便成原圖大小,也就是圖形維度不做調整,但是圖片太大很容易造成困擾
如果要微調就要用到cvResizeWindow()這個函式
但是,cvNamedWindow()不能設成1(CV_WINDOW_AUTOSIZE),務必將參數設為0或其他非1的數字.

#include < opencv2/core/core.hpp >
#include < opencv2/highgui/highgui.hpp >
#include < iostream >
using namespace cv;
using namespace std;
int main()
{
    IplImage *InImage;

 InImage = cvLoadImage("C:/Users/Public/Pictures/Sample Pictures/789.jpg",CV_LOAD_IMAGE_GRAYSCALE);
    
 CvSize Size1 = cvGetSize(InImage);

    //建立視窗(視窗名稱,參數)
 cvNamedWindow("InImage",CV_WINDOW_AUTOSIZE);
 
    //顯示影像(視窗名稱,影像檔案)
    cvShowImage("InImage",InImage);
  
    cvWaitKey(0); //按下任意按鍵可將圖片關閉
 cvReleaseImage(&InImage); //釋放來源影像佔用的記憶體
    cvDestroyWindow( "InImage" ); //銷毀視窗「src」
    return 0;

  
}

2015年10月29日 星期四

[Eclispe]加上自動提示(Intellisense)程式碼

When u build an new environment!!! Don't forget to set Eclipse Intellisense. it will help u a lot haha!!

打一打沒有提示字真得好難,這次來分享自動提示

Solution:
Windows -> Preferences -> Java -> Editor -> Content Assist
Auto activation triggers for Java keyin                    abcdefghijklmnopqrstuvwxyz(,


[Eclipse] console font size

Sometime i will forget how to resize my console font size in my eclipse!!

Solution
window -> preferences-> general -> appearance -> colors and fonts ->debug -> console font