我很菜,使用了開源代碼。。。
先發幾個WinXP下的截圖:


打開圖像對話框圖像預覽

簡介:
本作品擁有文字(目前僅限于英文和數字)識別能力。
擁有大部分主流圖像處理算法,如:高斯模糊,銳化,腐蝕,灰化,等等,足以勝任平時的圖像處理工作。
靈活的繪圖能力,如:繪制文本時,可以設置背景色及其透明度,設置背景矩形四角的弧度,設置文本顏色,像素級精確文本位置,設置字體,動態修改文本區域,等等;顏色填充時,可以將填充限制在選定的區域內,可以設置顏色容差,透明度,等等。
可以從 TWAIN 源(攝像頭,等)獲取圖像。
支持20種圖像文件格式,可以處理100M的大型圖像文件。
精確的幾何繪圖能力,像素級控制幾何圖形。
可將若干圖像整合為一個,整合方式及相對位置可以靈活控制。
等等其它特性。
圖像處理庫是開源庫 CxImage 6.0;
OCR 用了開源 gocr 0.49
開發工具 VC6.0 , MFC MDI 框架
開發中的幾點小插曲:
因為 VC6.0 是破解版的,所以就只好在虛擬機中開發(我本機上的軟件可全都是來源可靠的!!!)。
虛擬機是 VirtualBox (支持開源,支持免費!!),虛擬 Win7 太慢了,還是 XP 實用。
破解版的 VC6.0 不給力呀,只要編輯 Cursor 資源,系統就會崩潰(虛擬機中的XP崩潰),郁悶之下,直接編輯 RC 腳本,卻發現VC自動編輯的有點亂,于是興致來了,將之手工整理了一遍,2K 多行本該由 VC 自動編輯的文件,讓我料理了一遍,我有點多事了。
不得不承認,Win7 較之 XP 有極大的更新。在圖像上編輯文本的模塊,在 XP 下工作良好,到了 Win7 下就幾乎處于暫停狀態,仔細一檢查,同樣的API 函數 GetPixel,在 XP 中性能良好,到了 Win7 下就比蝸牛還慢,無奈,回到 XP 中修改,唯一的辦法就是不用這個函數。
怎么繞過這個函數呢? 可以把圖像數據全取出來放到位圖中,然后訪問位圖嘛,如下
CDC dcMem;
CBitmap bmp;
this->HideCaret();
this->RedrawWindow();
CClientDC dc( this );
dcMem.CreateCompatibleDC( &dc );
bmp.CreateCompatibleBitmap( &dcMem, width, height );
CBitmap *pOldBmp = dcMem.SelectObject( &bmp );
dcMem.BitBlt( 0, 0, width, height, &dc, 0, 0, SRCCOPY );
dcMem.SelectObject( pOldBmp );
然后在 bmp 中取色吧,可是為了讓文本背景透明,必須設置 pDC->SetBkMode( TRANSPARENT ); ,可是這樣一來,bmp 中全是黑色,沒有意義了。
思來想去,毫無頭緒。。。直到晚上七點多,終于決定,去散步。。。
獨自一人穿著拖鞋在華師大游蕩。。。我堅信自己沒有遇到熟人
九點回來,搞定之。。。
開發過程還算順利,給老師看看初步成果。然而。。。在老師的機器上不能正常運行,悲劇。。。回來仔細檢查,確定沒有問題呀。。。于是乎,我開始懷疑 VC6.0 了,Debug 出來的正常,Release 出來就不行,果斷換了一個VC6.0,OK。。。NND 破解版
可以在這里下載,免費使用,希望有興趣的同學一起開發,繼續增強之。。。。
可執行文件 /Files/coreBugZJ/MageX.rar
一個簡陋的使用說明 /Files/coreBugZJ/User.txt