2011-12-25

OpenCV + Dev-C++

在尋找影像辨識軟體時看到了OpenCV這個由Intel所主導開發的工具程式庫,目前的版本已出到2.3.1,在網路上也可以看到不少安裝的文章,依循著前人的脚步在花了一點時間安裝後並使用網路上找到的sample進行測試,結果幾乎都無法正常完成編譯的工作,只好硬著頭皮去找問題。
原來OpenCV在2.2版開始與1.x版開始差異變大,除了lib和include的位置有差異之外也再分成opencv和opencv2,還有像cvHaarDetectObjects這個function,原先只需要7個參數,從2.2版開始也變成需要8個參數,就算在小改後我還是有出現無法link的問題發生,為了可以快速上手決定選用與1.x版差異較小的2.1版進行安裝,後來證明這個決定是正確的。

安裝環境:
  • Windows XP with SP3
  • OpenCV2.1 (OpenCV-2.1.0-win32-vs2008.exe)
    -> 安裝路徑 C:\OpenCV2.1
  • Dev-C++ Version 4.9.9.2 (5.0Beta)
    -> 安裝路徑 C:\Dev-Cpp
在安裝OpenCV2.1版及Dev-C++後,設定步驟如下:
  1. 執行Dev-C++
  2. 點選 工具 -> 編譯器選項
  3. 編譯器 -> 勾選 在連結器命令列中加入以下的命令 -> 在下面方框中填入以下字串
    -lcv210 -lcvaux210 -lcxcore210 -lcxts210 -lhighgui210 -lml210 -lopencv_ffmpeg210
  4. 目錄 -> 二進位檔 -> 新增路徑  C:\OpenCV2.1\bin
  5. 目錄 -> 函式庫 -> 新增路徑  C:\OpenCV2.1\lib
  6. 目錄 -> C引入檔(Includes) ->  新增路徑  C:\OpenCV2.1\include\opencv
  7. 目錄 -> C++引入檔(Includes) -> 新增路徑  C:\OpenCV2.1\include\opencv
  8. 完成
測試結果:

  1. 測試程式可參考 http://yester-place.blogspot.com/2008/06/opencv2.html


  2. #include "highgui.h"
    int main()
    
    {
        IplImage *img = cvLoadImage("d:\\1.jpg", CV_LOAD_IMAGE_ANYCOLOR);
        cvNamedWindow("Image:", CV_WINDOW_AUTOSIZE);
        cvShowImage("Image:", img);
        cvWaitKey(0);
        cvDestroyWindow("Image:");
        cvReleaseImage(&img); 
    }
    
    
    
    
    
    
    



2011-09-05

[EzWord]背英文單字的小工具

[EzWord]一支幫助自己蒐集英文生字和複習的小程式。
版本更新:2011-11-09
它是一支中介程式,將指定的字彙導向Dr.eye譯典通線上辭典進行查詢並播放語音檔,以下為基本功能:
  1. 英文單字查詢
  2. 英文生字蒐集
  3. 英文單字語音撥放
  4. 英文單字輪播
字彙檔格式:
字彙檔格式以","逗號為分隔符號,可參照檔案"高中7000字.txt"。

英文生字蒐集功能說明:
EzWord蒐集英文生字的功能使用時,請勾選程式畫面上的選項後,將單字、短句或文章反白選取進行複製(Ctrl+C)後,EzWord會以"空白"為分隔符號,將單字依序列表於字彙區。
列表後可選取不要的單字,按"Delete"鍵直接刪除,若要編輯單字,請儲存檔案後直接編輯文字檔。

目前已知的Bug:
  1. 部份單字因網路下載的問題,造成語音會無法播放,可拉長等待時間或以手動的方式自行點選"擴音器"的Icon進行手動播放。
版權宣告:
  1. Dr.eye譯典通線上辭典為英業達股份有限公司版權所有。
  2. 本程式歡迎有需要的朋友自行取用、拷貝及散佈,但禁止以本程式進行商業行為。
  3. 本程式因使用到Dr.eye譯典通線上辭典,若英業達公司對於本程式使用線上查詢的行為提出異議,本人將刪除本程式下載連結,也請各位自行刪除本程式。


















2011/12/16 修正語音播放、生字蒐集存檔的問題並增加音量調整功能。

2014/07/06 dr.eye網站改版修正。

下載EzWord_20140706

2011-08-23

Sqlite上的truncate table

最近採用Sqlite開發些小工具,目前使用的狀況相當的良好,SQL語法的相容度也不錯,目前除了truncate table這個指令不相容外其他的指令還沒遇到無法執行的狀況,雖然truncate table沒法度用,不過一定有類似的指令可完成相同的工作,經過爬文和測試後,確認下列語法可完成相同的目的,"delete from TableName"。

2011-07-09

NetBootDisk

NetBooDisk -- 一個在Dos模式下可支援多廠牌網卡驅動的好用工具。透過PXE的方式搭配Ghost,支援不同網卡的機器同時一次還原,搭配"萬用還原"的Ghost Image+ SkyDriver更是如虎添翼。如果是相同硬體規格的機器,也可以省去製作不同Boot Disk的麻煩。苦命高級工人的好命工具。

2011-07-04

收聽網路電台的小程式

為了收聽網路電台,多年前用較熟悉的Delphi寫了個小工具,方便收聽Hichannel的網路電台,[EzNetRadio]它很簡單沒什麼特別的功能,且僅只於聽hichannel上的電台而已。











2012/01/01 重新改寫SourceCode,除原來支援的Hichannel上的網路電台外,也再加入Now.in這個網路電台的新平台。
2012/01/08 修正Now.in平台可全部列表,及一些小問題。
















2012/11/10
  1. 暫時移除對Now.in的支援,衷心期盼Now.in順利渡過難關。
  2. 頻道列表支援Unicode。
  3. MainMenu整合進PopMenu中。
  4. 支援KISS RADIO即時歌單顯示。























2013/09/29
  1. hichannel radio改版修正










2013/11/01
  1. 修正 hichannel 撥放網址連結

2014/12/04
  1. 修正 hichannel 撥放網址連結
  2. 版本 v3.24
2015/01/08
  1. hichannel 全面改版,修正播放問題
  2. 版本v3.30
2015/01/25
  1. 版本v4.00







2015/01/27
  1. 版本v4.00F
  2. fork 自v4.00
  3. Powered by FlowPlayer.org 










2015/02/25
  1. 版本v4.01F
  2. 新增 靜音全域熱鍵 - Ctrl + Alt + M
2015/03/03
  1. 版本v4.02F
  2. 修正讀取播放狀態
  3. 修正 application wide hotkey
2015/03/06
  1. 版本v4.03F
  2. 測試修正開機自動執行、連線後自動隱藏、自動收聽預設電台
  3. 以上功能XP測試正常
2015/03/10
  1. 版本v4.10F
  2. 修正播放連結問題
2015/03/14
  1. 版本v4.20F
  2. 新增版本更新檢查,怕太擾人所以不做自動檢查而必須手動執行
2015/03/21(測試版)
  1. 版本v4.21F
  2. 將FlowPlayer.org相關檔案整併至版本更新訊息GoogleApp上,測試是否可改善檔案下載速度
2015/03/25
  1. 版本v4.22F
  2. FlowPlayer.org相關檔案整併至版本更新訊息GoogleApp
  3. 修正KISS Radio即時歌名顯示
2015/04/18
  1. 版本v4.30F
  2. 新增"第三方播放器"--下列為已測試過的播放器
    • 以下播放器經hichannel M3U8連結測試
    • ffplay(支援)
    • PotPlayer(1.5.39007以上支援)
      • 記憶體佔用會漸大到約130M
      • 有錄音、音效EQ、調整音效輸出的朋友可以選用
    • MPC-HC: Media Player Classic Home Cinema(支援)
    • GOM Player(不支援)
    • KMPlayer(不支援)
  3. 新增"取得M3U8連結"
    • 選取此功能,Ez僅提示訊息不進行播放
    • 顯示訊息的同時也已拷貝至剪貼簿,可直接貼上利用
  4. 使用第三方播放器,請自行安裝
2015/05/13
  1. 版本v4.31F
  2. 播放連結修正
2015/06/07
  1. 版本v4.40F
  2. 恢復Ez原始播放核心Window Media Player
  3. 支援非hichannel體系獨立串流之網路電台,如:銀河網路電台
  4. 格式請自行參閱EzNetRadio.ini [OtherRadio] Section
  5. [OtherRadio] Section 站台資訊過於分散,故不支援自動更新站台資訊,請自行維護
  6. 獨立串流站台連結請自行開啟Window Media Player測試
  7. 使用第三方播放器播放獨立串流站台請自行事先測試
2015/08/22
  1. 版本v4.41F
  2. 修正"電台更新列表"功能和其他不重要的東東
2015/10/04
  1. 版本v4.42F
  2. 加入挖地雷的程式碼,避免踩中"已播放卻無聲音"的地雷
  3. 已測試環境
    • WinXP 32bit + IE6 + FlashPlayer 16 (好像沒這個問題)
    • Win7 64bit + IE11 + FlashPlayer 19 (目前測試好像可正常解決)
  4. 有朋友測到但是還有相同問題,請回個消息
  5. Google App Engine‎ 的開發環境因NB重灌,環境還沒恢復,所以線上更新的訊息還沒更新。
2015/11/01
  1. 版本v4.50F
  2. 修正播放問題
2015/11/21
  1. 版本v4.60
  2. 修正播放問題
  3. 暫時取消FlowPlayer播放核心
  4. 暫時取消支援第三方播放器
  5. 暫時取消getM3U8功能
  6. 播放畫面變醜了
2015/11/23
  1. 版本v4.61
  2. 修正不知道會不會發生的事
  3. 修正狀態提示
  4. 無法使用"開機自動執行"的朋友,程式記得設定"以系統管理員的身分執行此程式"
2015/11/28
  1. 版本v4.63
  2. 修正"自動收聽預設電台"錯誤問題
2016/12/19
  1. 版本v4.70
  2. 新增支援YouTube訊號來源播放
  3. 新增設定YouTube訊號來源[嵌入式/獨立式]播放
  4. ini檔 [YouTube] Section 不支援自動更新站台資訊,請自行維護
  5. YouTube訊號來源部份有來源保護的直播無法支援,如:民視新聞台、東森新聞台
  6. YouTube訊號來源可支援全螢幕播放
  7. YouTube訊號來源狀態控制尚未完善

2016/12/29
  1. 版本v4.71
  2. 支援播放會認YouTube網域的訊號源,如:民視新聞台、東森新聞台
  3. 新增記憶獨立式播放視窗大小
2017/01/04
  1. 版本v4.73
  2. 新增判斷是否已安裝 Flash Player for Internet Explorer,XP ok 其他沒環境測
  3. 新增 功能 -> 重新載入電台列表,解決更新ini檔後Ez要重開的麻煩事
  4. 其他...
2017/01/16
  1. 版本v4.75
  2. 新增 "編輯INI檔" 可以直接以預設的文字編輯器開啟編輯Ez的設定檔,不過提醒各位Ez的INI檔為Unicode編碼
  3. 新增開機自動檢查版本更新,如果在Ez的版本顯示後面多出一個"*",就代表有新版本了
  4. 在INI檔裡除了原先[YouTube] Section外,另新增[YouTubeLive] Section,沒什麼原因只是想把它分隔開來因為我覺得比較方便
  5. 恢復FlowPlayer核心,不過發現不是所有m3u8的格式都支援,想玩的請在INI檔自行新增[m3u8] Section
2017/02/24
  1. 版本v4.76
  2. 修正YouTube播放問題
  3. 發現YouTube似乎不再支援XP+IE+FlashPlayer的組合,不過Hichannel上的網路電台沒問題 ,若為Win7以上都正常
  4. 修正v4.75版檢查版本更新問題

























2017/04/16

  1. 版本 v4.80
  2. 修正hichannel頻道更新問題
  3. 支援四季影視免費頻道
  4. 為支援4gTV的https本次修正Ez新增會自解2個dll檔,對檔案有疑慮朋友請斟酌使用
2018/06/24
  1. 版本 v4.90F
  2. 修正hichannel無法播放問題
  3. 移除4gTV及YouTube播放支援
  4. 恢復FlowPlayer播放核心
2018/06/26
  1. 版本 v4.91F
  2. 修正自動播放預設電台播放問題
  3. 定時更新節目名稱
2018/07/08
  1. 版本 v4.92F
  2. 對DLL檔搜尋路徑動點手腳,沒環境所以沒測
  3. 請白老鼠回報結果
2019/04/04
  1. 測試版本 v4.93F
  2. SSL所需 DLL 檔案路徑問題修正 TEST2
  3. 修正kiss radio即時歌名
  4. 請白老鼠再次回報結果
2020/01/30
  1. 版本 v5.00F
  2. 修正播放問題
2020/06/06
  1. 版本 v5.03F
  2. 修正站台更新異常
  3. 修正 hichannel 站台目前節目名稱顯示異常
  4. 新增[AppleHLS] section,可支援hichannel 以外的HLS播放
2020/08/06
  1. 版本 v5.10F
  2. 修正播放異常
2020/09/13
  1. 版本 v5.11F
  2. 修正多餘流程
2021/11/14
  1. 版本 v6.00
  2. 支援TLS 1.2
  3. 移除FlowPlayer Flash播放核心
  4. 使用 FFVCL Lite Encoder & Player for FREE 播放核心
  5. 使用此版本請先刪除前版本的2個 dll 檔
  6. 本版Ez會自解2個 DLL 檔和1個 FFVCL Lite Encoder & Player for FREE 版權宣告,有疑慮者請自行斟酌
  7. 記得看系統需求
2021/11/29
  1. 版本v6.01
  2. 修正播放中、停止播放時程式icon改變及TrayIcon hint。
2021/12/24
  1. 版本v5.20F
  2. 支援TLS 1.2
  3. 使用此版本請先刪除前版本的2個 dll 檔
  4. 手動更新不列入版本更新檢查
  5. 必須安裝 for IE版本的 Flash Player
2022/10/30
  1. 版本v7.00
  2. 升級 FFVCL_Lite 到 v8.1
  3. 支援 ffmpeg-dlls-5.1-win32-lgpl-player[請看系統需求說明]
  4. 電台數目前僅保留自己常聽的電台或原本還可以收聽的電台
2022/11/23
  1. 版本v7.10
  2. 支援使用仍使用hichannel服務單頁多電台,如:best radio
2023/06/11
  1. 版本 v7.12
  2. 解決 best radio 第1台異常的問題
  3. 解決 kiss radio 播放問題
  4. 說明:YouTube 播放必須使用第3方播放器,我是都用PotPlayer,設定方式請參照ini檔
下載:EzNetRadioU7.12

系統需求FFmpeg DLLs for FFVCL
  1. 下載 FFmpeg DLLs for FFVCL Player smaller filesize for WIN32 的版本。
  2. 下載後執行解壓縮後會有個 LibAV 的目錄,這是 EzNetRadio 需要的,請把裡面所有檔案和 EzNetRadioU.exe 和 EzNetRadioU.ini 放在一起即可。

EzNetRadioU 顯示播放中且有顯示輸出音量但沒聲音可能的解決方案
以下方案只有一個成功樣本,只有我本人目前有3個無效1個,給有發生這種情況的朋友一個可測試的解決方案,如果有人測過不管成不成功都麻煩回來告訴我一下,感謝。
  1. 使用 regedit.exe 找到以下機碼
    HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\LowRegistry\Audio\PolicyConfig\PropertyStore\
  2. 應會看到一堆目錄,其中會有一個目錄內容包含EzNetRadioU這個KeyWord,長得像以下的:
    {0.0.0.00000000}.{3c3670b2-a768-4f53-8350-71cbf770dae3}|\Device\HarddiskVolume4\M2E\EzNetRadio\EzNetRadioU.exe%b{00000000-0000-0000-0000-000000000000}
  3. 找到後請把該目錄從登錄檔刪除應該會讓EzNetRadioU恢復正常

2011-06-28

merge CIDR

Perl提供了個方便的模組CIDR-Lite,可將單一IP或IP Range整合成CIDR格式輸出。
#!/usr/bin/perl
use Net::CIDR::Lite;

my $cidr = Net::CIDR::Lite->new;
$cidr->add("192.168.0.0/23");
$cidr->add("192.168.2.0/23");
$cidr->add("192.168.4.0/24");
$cidr->add("192.168.5.0/24");
$cidr->add_range("192.168.6.0-192.168.7.255");
print "$_\n" for $cidr->list;

輸出結果:
192.168.0.0/21

2011-06-22

PerlRegEx for Delphi

Regular Expressions -- 在一堆雜亂的文字資料中,快速有效幫你列出符合格式資料的不二選擇,不論是system log、XML或是HTML..等等,在效率上有些時候並不遜於用XML Parser或HTML Parser,但是比專用的Parser更具彈性。
在FreeBSD/Linix的環境使用習慣了,但Delphi預設並沒有功能類似的元件,還好有個好用的免費元件Delphi Regular Expressions Classes可供使用,否則真有殘廢一半了的感覺。
於使用TPerlRegEx類別時必須將相關的程式部份撰寫完整再進行程式測試,否則會造成Delphi產生[Fatal Error] Internal error: L3169 或 [Fatal Error] Internal error: L3170的怪怪錯誤,白癡的我還以為是工作環境因為亂玩又出了狀況,就把它給掛了重來..都用1、2年了..唉..真是%$^&*#....囧。

2011-06-02

Delphi Inifiles Buffer Size 修正

Delphi提供了方便讀寫.ini檔的物件TIniFile,但是預設ReadSection的buffer size僅只16k,如果有較大量資料讀取時,會造成資料讀取不完全的問題。
其實經過修正source code再產生新的.dcu檔,並覆蓋原始同名的檔案即可解決這個問題,步驟如下:
  • Delphi 版本 7.0
  • 需修正的檔案\Delphi7\Source\Rtl\Common\IniFiles.pas
  • 需更新的檔案\Delphi7\Lib\IniFiles.dcu
  1. File -> New -> Application
  2. Project -> Add to Project -> 選取 \Delphi7\Source\Rtl\Common\IniFiles.pas
  3. 找到下列下列程式碼並自行修正buffer size
    procedure TIniFile.ReadSection(const Section: string; Strings: TStrings);
    const
       BufSize = 16384;  //<-預設為16k
  4. 儲存檔案,File -> Save
  5. 設定Compiler參數,Project -> Options -> Compiler -> 取消Debugging群組所有的選項
  6. 產生IniFiles.dcu檔,Project -> Compile Project or Ctrl + F9
  7. 將\Delphi7\Source\Rtl\Common\IniFiles.dcu覆蓋原檔\Delphi7\Lib\IniFiles.dcu即更新完成

2011-02-13

Delphi+ZesoLib+MySQL Embedded

去年10月份因緣際會看了一本多年前的暢銷書「富爸爸,窮爸爸」,而興起了投資股票的想法,也許是新手的運氣,不但沒有虧損還小賺了一筆。
不過再接著就沒那麼好運氣了啦!!但是卻讓我學到了點經驗。
投資股票就像那些所謂的專家講的「要做功課」。目前的相關資訊是有但卻相當分散,所以興起利用AP到網路上將資訊蒐集下來,但是不想採用Client/Server的架構,所以選定的組合是以Delphi7+ZesoLib+MySQL embedded。
起初以ZeosLib的sample進行測試先確認libmysqld.dll的版本,測試MySQL-5.x版都有問題,但在網路上找到的單一檔案卻可以,進行一些測試後確定使用MySQL-4.1.22版可正常讀取及寫入。

混了好久

n年沒來更新了,不過現在blog好像不流行,目前是facebook當道,隱形人當久了很不習慣被人看光光的感覺,還是用blog囉~~