pupuliao
openCV K-means的用法
最近為了去雜訊,測視使用了 k-means的方法減少,效果不錯,有效解決因為少數雜訊影響重心位置
參考資料
http://forum.gamer.com.tw/C.php?bsn=60292&snA=1518
http://www.aishack.in/2010/08/k-means-clustering-in-opencv/
http://rritw.com/a/bianchengyuyan/C__/20121123/258942.html
這三篇教學文當中,我使用第一篇的範力十分簡單好懂
第二篇視所有參數的英文說明
第三篇是中文說明
本文教學開始
Mat model(Data.size(),2, CV_32F );//sample
//建立一個矩陣 每一筆資料 一個row,cow代表維度,這次我是算點作標 所以是二維
vector<Point *>::iterator tempPoint; //事先算好的點陣列
int i=0;
//把資料塞入矩陣中
for(tempPoint=Data.begin();tempPoint!=Data.end();tempPoint++,i++)
{
model.at<float>(i,0)=(*tempPoint)->x;
model.at<float>(i,1)=(*tempPoint)->y;
}
int k=2; //要分幾群
Mat cluster; //會跑出結果,紀錄每個row 最後是分配到哪一個cluster
int attempts = 2;//應該是執行次數
Mat centers; //記錄那個cluster的值
//使用k means分群
kmeans(model, k, cluster,TermCriteria(CV_TERMCRIT_ITER|CV_TERMCRIT_EPS, 10, 1), attempts,KMEANS_PP_CENTERS,centers );
//,TermCriteria(CV_TERMCRIT_ITER|CV_TERMCRIT_EPS, 10, 1), 這裡有三個參數,決定k-means何時結束,第二個參數是指迭代最大次數,第三個參數是精確度多少,第一個參數是指依照前兩個參數的哪一個為準,以範例中就是兩者都參照,以 or 的方式決定
//以下是因為我指是用這方法去雜訊,所以要找出最多點的地方
int countMAX=0;
int MAXIndex;
int *tempSum =new int[k];
memset(tempSum,0,sizeof(int)*k);
for(int i=0;i<Data.size();i++)
{
tempSum[cluster.at
if(tempSum[cluster.at
{
countMAX=tempSum[cluster.at
MAXIndex=cluster.at<int>(i,0);
}
}
Point result(centers.at<float>(MAXIndex, 0),centers.at<float>(MAXIndex, 1));
創世中文往台灣充值經驗談
FreeBSD忘記密碼解決方法
有些時候,會剛好接手道 資料不全的server,就有機會碰到 帳號密碼消失
最近剛好碰到,找了一下方法 記錄下來
資料來源:http://www.hkcode.com/linux-bsd-notes/399
1. 重新開啟 FreeBSD 主機。
2. 在 "Welcome to FreeBSD!" 開啟選單中按 "4" 選擇 "Boot FreeBSD in single user mode"。
3. 然後會看到 "When prompted Enter full pathname of shell or RETURN for /bin/sh:",直接按 Enter。
4. 這時便會直接進入 single user mode,輸入以下指令重新掛載根目錄 "/" 為可讀寫:
# mount -u /
# mount -a
5. 用 passwd 重新設定 root 密碼:
# passwd
6. 最後重新啟動即可:
# reboot
如果mount 出現問題
請先執行fsck -y
yahoo 部落格轉wordpress 教學
參考資料
如果單純 無名轉 wordpress我想應該原理差不多,請自己測試
因為我手上有圖片的部落格只有yahoo 部落格,沒有無名
不過我發現現在這兩邊的備份其實都滿方便的
這是我下載下來的部落格備份
並把其中 tw-blog_日期_movable-type.txt 這個檔案改名成mt-export.txt
openCV的XML 資料儲存教學
nexus 7 2代 16G wifi 開箱文
距離上一次的 nesus 7 32G開箱文 不到一年,因為剛好家裡有人出國,就請他 把新上市的nexus7 二帶了回來,不過是16G的版本
新到手的的nexus 7 這次的包裝改成藍色外殼
拆開外殼,配上一張發票 這台價格 229USD
sony VAIO 開箱文
ubunru 虛擬主機 VirtualHost 設定
虛擬主機 VirtualHost
最主要的目的是 讓一台server 一個IP 的情況下 可以直接運作多個網站
在ubuntu server 預設的情況下 就是使用VirtualHost
以下是執行指令
#cd /etc/apache2/sites-available
#cp default [第二個網站網址]
#vim [第二個網站網址]
修改和增加下列資訊
ServerAdmin [email protected]
ServerName [第二個網站網址]
DocumentRoot /home/pupuliao/web/ownCloud/
<Directory [第二個網站存放位置] >
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
#cd ..
#vim apache2.conf
增加一條 ServerName 127.0.0.1:80
#a2ensite [第二個網站網址]
# /etc/init.d/apache2 reload
收工
ubuntu 解決中文界面問題
ubuntu server 開機自動發信通知(使用gmail)
參考資料
http://tschci.blogspot.tw/2009/04/ubuntu.html
http://fourdollars.blogspot.tw/2009/08/ssmtp-gmail.html
最近弄到一台server
因為是寄放在別人的機櫃裡,因為有些原因我想知道 server 何時重開機
所以寫了 下列教學
1. 安裝 SMTP
apt-get install ssmtp
2. 設定SMTP
vim /etc/ssmtp/ssmtp.conf 加入下列資料
AuthUser=user.name@gmail.com
AuthPass=password
FromLineOverride=YES
mailhub=smtp.gmail.com:587
UseSTARTTLS=YES
3.測試
echo "This is a test mail." | mail -s "test mail" user.name@gmail.com
有收到信就表示成功了
4.撰寫shell script
vim mail.sh
#!/bin/sh
t=$(date +%Y%m%d%H%M%S )
sudo echo "標題"$t |mail -s "open server" [email protected]
5.測試 shell script
sh mail.sh
檢查是否收到信
6.設定自動執行
cp mail.sh /etc/init.d
sudo update-rc.d mail.sh defaults 99 1
完成收工