自己當年VC(C/C++)收集範例
自己當年VC(C/C++)收集範例
GITHUB: https://github.com/jash-git/jashliao_VC
////////////////////////////////////////////////////////////// // //檔案功能說明 // ///////////////////////////////////////////////////////////// //============================================================ // //函數說明 // //============================================================ //---------------------------- //區段程式碼功能說明 //__XXXX_start //__XXXX_end //---------------------------- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 001_C++基本觀念 ▲▼ 01_C++_位元左右移運算範例 02_雙層結構出始化 『標準參考範本』 {痞客邦} 03_判斷閏年程式 {痞客邦} 04_判斷質數 {痞客邦} 05_求N的次方 06_例外處理 『標準參考範本』 07_函數指標 『標準參考範本』 {痞客邦} 08_指標變數初始化 09_浮點數四捨五入 10_暴力解題(設有一籃水果 除3於1 除5於3 除7於2 問水果為多少個) 11_test_array二維陣列轉一維陣列 『標準參考範本』 12_Array2toFunction二維陣列傳遞與二維轉一維技巧 『標準參考範本』 {痞客邦} 13_test_new2d_1d_證明動態配置記憶體不能從二維轉為一維 13_實現動態配二維陣列和傳遞動態的二維陣列 {痞客邦} 14_test_math_9_9_另類表示的九九乘法表 15_test_gcd_gcd_lcm_利用遞迴方式求最大公因數和求其最小公倍數 {痞客邦} 16_new_struct_str_純C++動態配置字串陣列利用結構實現 『標準參考範本』 {痞客邦} 17_test_MMarry_loop_旋轉方式填入陣列值 18_evalPf_純C後序求值 {痞客邦} 19_postfix_純C中序轉後序 {痞客邦} 20_test_class_new_動態配置記憶體_物件 『標準參考範本』 {痞客邦} 21_帶參數的主函數 『標準參考範本』 {痞客邦} 22_test_While_解決處理當使用scanf時因使用者輸入型態不符時的問題 {痞客邦} 23_test_eval_利用標準C++工具開發簡易數學直譯器---------->內涵DEV C++ {痞客邦} 24_test_pointer_大陸_Vusual C實用圖像處理的二維陣列轉一維陣列 25_test_chrstring_array_利用純動態配置記憶體建立動態字串陣列 26_基本邏輯閘運算結果 27_遞迴 28_攔截所有錯誤test_try_catch {痞客邦} 29_VC_組合語言 {痞客邦} 30_回文判斷 31_猜數字 {痞客邦} 32_攝氏_華氏 {痞客邦} 33_體質指數bmi {痞客邦} 34_費氏數 {痞客邦} 35_testforloop->當起始條件和終止條件相同時的狀態 {痞客邦} 36_testBase64->Base64編解碼 {痞客邦} 37_test20091021(輸入10個數字判斷奇數或偶數,且會在執行完後讓程式停顯示結果) 38_number2char(將數字0~35轉換成字元0~9、A~Z) 39_One2N_Rand(取出N個X到Y之間的亂數) {痞客邦} 40_test(五子棋) {痞客邦} 41_函數的參數有預設值宣告 42_ClassStaticFun(Class的public函數只有在宣告為static才可以在非宣告物件時獨立使用) 43_C語言指標擷取字串部份進行比較 44_test_cmd_MFC(建立命令模式下MFC程式)『命令模式下MFC程式 標準參考範本』 45_new_struct_new_char_str_純C++利用struct與字元指標利用動態配置記憶體功能實現自訂字串資料格式陣列 『struct和字元指標兩層動態配置記憶體 標準參考範本』 46_number2English(數字轉英文) 47_test_fgets『二進位讀/寫檔(有教學PDF檔 C和C++都有),fgets讀檔 _ 一次讀3個字元,8進位字串轉10進位數字 標準參考範本』 48_test_sprintf『10進位數字轉8進位字串,"%03o" =10進位數字轉8進位,且03表示一定要三位數不足補0 _ 重點就是可以補零 標準參考範本』 49_二技夜間部考題(超難) {痞客邦} 50_DWORD型態轉字串(字元陣列) base on VC6 {痞客邦} 51_Cpp_string(純C++ string 字元搜尋與替換) {痞客邦} 52_charstrnpy(純C的strnpy模擬) {痞客邦} 53_Gauss-Jordan 消去法解線性代數方程 54_C_動態配置記憶體教學(一維資料) 『C_動態配置記憶體 標準參考範本』(PS二維是91) 55_C_#ifdef 範例 『#ifdef 標準參考範本』 {痞客邦} 56_C_printf目前所在行數『printf目前所在行數 標準參考範本』 {痞客邦} 57_Embedded環境下C_C++語言字串陣列事先配置記憶體與存取測試實作範例『Embedded環境下C_C++語言字串陣列 標準參考範本』 58_fsv_test(函數內靜態變數初始話的實驗) 59_純C語言動態配置記憶體和動態調整記憶體大小_實作(字串陣列)『動態調整記憶體大小_字串陣列實作 標準參考範本』 {痞客邦} 60_m3u8_strstr(strstr:字串搜尋,strcat:合併,strcpy拷貝)『純C/C++:字串搜尋,合併,拷貝 標準參考範本』 {痞客邦} 61_純C一次讀取一行資料 {痞客邦} 62_純C sscanf_xml(自己撰寫XML分析,由於用sscanf,所以當字串類有空白時,會有判斷不出來或誤判的危險,建議用LINUX C方法) 『純C一次讀取一行資料 標準參考範本』 63_BASE64(純c windows和Linux) 『純 C BASE64 標準參考範本』 64_VC_純cpp_純c_AES編解碼(純字串) 『純 C/C++ AES編解碼 標準參考範本』[包含~~CB_CPP_AES128_SBOX (驗證過和C# AES128 SBOX+Rijndael結果一致)] 65_BASE64加上xor編解碼(純c windows和Linux) {痞客邦} 66_xor_encoder_decoder 『純 C XOR編解碼 標準參考範本』 67_Ip_Range 『純 C sscanf貪婪用法(任意字元切割/分割(拆解)字串),計算單一字元出現次數 標準參考範本』 68_CPP_NowNews_sscanf 『純 C 字串反轉 純 C 路徑、檔名和副檔名拆解 標準參考範本』 {痞客邦} 69_C_str_replace 『純 C 字串替換 標準參考範本』 {痞客邦} 01 02改寫成不用動態配置記憶體版 70_sprintf_system(組合命令字串並呼叫執行) 『純 C++ sprintf組合命令字串、system呼叫執行 標準參考範本』 {痞客邦:[Linux C]-組合命令字串並呼叫執行} 71_C++繼承狀態表 {痞客邦} 72_C 運算式型別轉換的影響 {痞客邦} 73_CPP_macro ( macro巨集、函式->巨集 ) 74_C++經典的7種排序演算法 {痞客邦} 75_C++ class_static_variable {痞客邦} 76_純C++ 靜動態配置不規則長度的字串陣列 {痞客邦} 77_C++_namespace範例 {痞客邦} 78_純C_利用strstr和strncpy來實現拷貝字串中某段子字串 {痞客邦} 79_純C_實作字串切割/(拆解)split函數 『純 C 字串拆解使用strtok一次可定義多個分割字元 標準參考範本』{痞客邦} 80_純C_將檔案轉成陣列放到程式之中之後在將還原回來 81_純C_全域變數,局部區域變數,區域靜態變數,x++,++x整合觀念範例 {痞客邦} 82_實做讀取密碼(password)功能 {痞客邦} 83_純C的linked list範例 84_純C_利用數學公式求次方 85_C++ 巢狀類別 86_4比3和16比9轉換計算(各種螢幕解析度轉換比例) 87_純C++動態物件陣列內的成員變數也動態配置記憶體 88_暴力破解買東西剩最少錢的方法(AX+BY+CZ ≦Dividend) (AXBYCZ_100為正解) 89_證明所有指標變數大小一至且計算編譯器所編譯成是的定指空間大小 『純 C/C++ 指標變數 標準參考範本』 90_取出陣列的記憶體位置並加總 91_純C和純C++的二維指標與陣列- 動態配置[m][n] 陣列 文件 『純 C/C++ 動態配置 標準參考範本』 92_純C確認檔案是否存在和抓取檔案大小 『純 C/C++ 確認檔案是否存在和抓取檔案大小 標準參考範本』 93_CPP_wget_keep_session 『純 C/C++ wget keep session 標準參考範本』 94_C++ 拷貝建構子 95_C++進行擲骰子的機率模擬 96_sscanf解決資料內有分隔符號的問題範例 97_純C_中華民國身分證字號驗證程式 98_C code 字元大小寫轉換 99_純C_url_encode_decode 100_C語言模擬資料分頁顯示(每頁元素10個)演算法 101_OOPC(純C下使用物件導向) 102_C_C++語言標準清空struct(一塊記憶體)語法 103_純C下WINDOWS_LINUX計算時間差 104_CB_Calendar(純C萬年曆) 105_CB_printWait(純C在文字模式實現等待動畫和SLEEP使用) 106_純C[可在WINDOWS和LINUX]條列(檔案列表)(搜尋)特定目錄下所有檔案包含子目錄 107_純C 主函數帶參數,將參數值複製到區域變數中(雙指標字串拷貝) 108_純C將2個16進制的字元和一個BYTE資料空間互轉 109_純C十進位數字和二進位字串轉換 110_純C下無號Byte單一Bit設定 111_純C下enum example(列舉 範例~定義有意義陣列值/陣列索引值) 112_純C取代system("pause")的標準函數 113_CodeBlocks(C++)下中文輸出(setlocale+printf)範例程式 114_純C++製作輸入密碼顯示星號功能 115_CodeBlocks C++ 使用 Windows API(WinExec)呼叫Windows EXE來執行(啟動後不會咬住) 116_使用假指令達到快速註解和啟用程式碼(#if) 117_C++_計算陣列長度_數值轉BYTE陣列_計算BYTE陣列 checksum 118_CB_UAC_test [單純C++專案 加上UAC(WINDOWS 權限) 標準範例] 119_純C++把N個檔案打包變成單一檔案[自製CAB檔] 120_兩個一維陣列交換和一維陣列反轉和氣泡排序函數 121_CB_CPP設定+顯示版本資訊 122_C_C++ 一維陣列和二維陣列在記憶體的配置情形教學 123_CB_RSA_Algorithm[非對稱加密演算法] 124_cpp_vector [vector基本用法] 125_CPP_sha1-md5[C++ HASH(SHA1)_MD5 字串加密範例] 126_C++ STL 容器基本範例實驗測試 00_CPP_STL_String ->純C 字串範例 [ 部落格對應URL: https://bit.ly/2AfCSab ] 01_CPP_STL_String ->純C++ 字串範例 [ 部落格對應URL: https://bit.ly/2pWuKVX ] 02_CPP_STL_Vector ->純C++ Vector範例 [ 部落格對應URL: https://bit.ly/2yJgQKX ] 03_CPP_STL_Queue ->純C++ Queue範例 [ 部落格對應URL: https://bit.ly/2PFLRqu ] 04_CPP_STL_Stack ->純C++ Stack範例 [ 部落格對應URL: https://bit.ly/2NNRvF1 ] 05_CPP_STL_Set ->純C++ Set範例 [ 部落格對應URL: https://bit.ly/2CNYGMs ] 06_CPP_STL_Map ->純C++ Map範例 [ 部落格對應URL: https://bit.ly/2QYhGLs ] 07_CPP_STL_Algorithm ->純C++ Vector排序、反轉、搜尋範例 [ 部落格對應URL: https://bit.ly/2RY4VBB ] 127_純C字串和字串陣列宣告 998_數學英文詞彙 999_比對程式碼差異 XXX_BCB6開發工具 XXX_COM Port監聽工具 XXX_Code_Blocks(C++ IDE) XXX_程式開發與教學輔助工具 FirefoxPortable NotepadplusplusPortable.rar oCamPortable(v212) Sublime Text 3 免安装版 命令列中執行完整WEB動作包含javascript(phantomjs) XXX_打包工具[NSIS] SYRIS_Offline.nsi[C#打包範例專案] SYWEB-V8-Workstation(Delta)打包檔 NSIS 重開機繼續安裝+自殺BAT XXX_製作屬於自己的WinRAR自解檔(另類安裝檔案製作) XXX_UI設計(規劃)軟體 Pencil Project Balsamiq Mockups(可實作UI和動作模擬) 繪製系統架構_流程圖[Dia]~DiaPortable 流程圖軟體+自己繪製的範例檔 XXX_螢幕側錄教學視頻 XXX_VB6 XXX_youtube 專業下載工具 XXX_用於 embedded IOT設備在實驗室上線時如果無法透過設備螢幕取得IP時,利用掃描方式反查線上IP和MAC對應( ps 事先記錄所有設備MAC ) 002_DLL完整設計範例 {痞客邦} ▲▼ 01_DLL共享記憶體 02_VB結合VC作影像處理DLL 03_抓抓圖 04_函數 05_函數呼叫對話盒 06_函數建立物件執行動作 07_類別 08_DLL初學者指南(敎如何直接呼叫DLL,不用透過LIB和H檔案) 09_相關文獻 10_VB呼叫VC的FTP_DLL(DLL字串傳遞) 01->(連線,上傳,斷線) 02->(連線,上傳,下載,斷線) 03->(連線,上傳(指定上傳路徑),下載(指定下載路徑),斷線) 11_GetMACAddress_API(VS2008開發DLL,VC回傳字串給VB,WIN7上抓網卡號碼) 12_VB和VC單純陣列傳遞『單純DLL陣列傳遞、C++動態配置記憶體、 標準參考範本』 13_DynamicLoadDll 『單純動態載入DLL,用途可動態替換既有函數(只要指定dll位置就可修正函數bug,另外也可以透過動態載入方式利用dll call dll來新增功能達到plugin的效果)、 標準參考範本』 14_VS2008 DLL 共享記憶體 15_VC的DLL_C#動態配置記憶體和DLL使用RUNDLL32標準測試語法 16_code blocks 撰寫DLL和動態載入使用 17_code blocks 撰寫DLL並給C#_CPP同時使用範例 01.只有單純Add API 02.可透過傳送結構體抓取[動態配置]/傳送資料到DLL中做運算 18_純C++的vector運用在DLL中的白痴範例 19_code blocks 標準DLL範例 20_cmd_gcc_dll[CodeBlocks_MinGW] 003_FLASH ▲▼ 01_FLASH播放 02_VC顯示flash動畫投稿 03_有給原始碼的SWF撥放物件和範例 04_時鐘Flash透明測試 05_透明視窗PlayFlash 06_選擇播放FLASH 07_VC顯示flash動畫投稿變種可縮小到系統工作列 {痞客邦} 08_VC顯示flash動畫投稿變種可縮小到系統工作列且可選檔案 09_偵測flash停止 004_freetype2函式庫 ▲▼ 005_GPS----->裡面有很多字串觀念技巧(GPSString) {痞客邦} ▲▼ 006_IIR ▲▼ 01_IIR_10HZ低通濾波器 02_IIR濾波器相關-陣列值平移 03_)test_IIR 04_任意階數_IIR 007_LF2大魔王大絕招鍵盤控制 {痞客邦} ▲▼ 008_MFC_PaPaGo程式 ▲▼ 009_OnTimer ▲▼ 01_MDI介面和Timerr 02_MDI介面和多個Timerr0 03_MDI介面和多個Timerr1 04_多個timer 05_定時判斷是否可連上網際網路並做時間記錄 06_ConsoleTimer_Time2Txt (Console Timer + CTime2Txt(時間表示:YYYYMMddHHmmss)) 07_CPP_Task_Scheduler (Timer定時執行程式) {痞客邦} 08_CutImageForSmooth 『Console Timer + 時間表示:YYYY/MM/dd HH:mm:ss) 標準參考範本』 MFC_Console_Timer_USBWEBSERVER[20171129] -VS2015 CString to char* 使用T2A巨集 -MFC 抓取目前時間 -利用FindWindow+SendMessage API 關閉程式 -使用ShellExecute開啟程式 -使用Sleep實現延遲 -使用InternetCheckConnection API實作網站連線測試,有在網址後面加上時間參數防止誤判 MFC_Console_Timer_USBWEBSERVER[20180118] -利用jpv寫實體檔案,判斷是否外部還能連線 VC_consoleTimer 010_OpenGL ▲▼ 011_PDF函式庫 ▲▼ 可在純C_C++下用的跨平台PDF函式庫(jagpdf) 012_RS232區 ▲▼ 00_文件 01_20060721自製RS232類別 02_VC2005_RS232範例 {痞客邦} 03_VC和8051程式20061224測試保證會動 04_VC配合8051讀取領藥機器訊號程式 05_可任意改變參數並自動傳送接收的RS232 06_利用VC建立一個具有擴充性的RS232 07_恩德主軸廠測量儀器程式 08_基本DNC 09_標準RS232類別 10_SoyalRS232Reader-------->利用(新版20080306)標準RS232類別,外加將RS232參數放到XML,可自動讀取RS232資料,(PS:RS232和讀取XML有標準新增步驟) 11_BeckRS485Control(使用舊版RS232類別+RS485轉接器) 013_TC++ ▲▼ 014_VC2005_CLI資料 ▲▼ 01_CLRConsole 02_CLR類別樣版與繼承 03_DLL範例 04_文件 05_建立CInt32類別實現10進位轉2進位 06_測試Winform加上建立類別並實體回傳直 07_開檔秀圖 08_操作comboBox 09_MFC與NET混合編程 10_在VC中調用 WebService {痞客邦} 015_VC_FLV轉檔 ▲▼ 01_FLV播放器 02_免費元件範例 03_要額外付費的元件範例 016_VC_Matlab {痞客邦} ▲▼ 017_VC_MySQL ▲▼ 018_VC_net2005範例 ▲▼ 019_VC存取Office ▲▼ 020_VC執行批次檔 ▲▼ 01_OPenClose 02_測試變數命名長度與呼叫DOS指令 021_VC壓縮程式 ▲▼ 022_VFW相關基本驅動範例 ▲▼ 01_VFW對話盒_可隱藏顯示畫面 02_VFW網路攝影機驅動範例 {痞客邦} 03_VFW對話盒_儲存BMP_在畫面繪圖_相關文件(裡面04版有影像處理_區域二職化) 20090503專題_影像處理(判斷方框內影像的變化並改變方框顏色) 023_VFW網路攝影機驅動範例(加影像處理存檔) ▲▼ 01_VFW網路攝影機驅動範例(加影像處理存檔)01 01_VFW網路攝影機驅動範例(加影像處理存檔)02 024_Win32Console呼叫外部程式 ▲▼ 01_測試變數命名長度與呼叫DOS指令 02_測試變數命名長度與呼叫其他程式 025_不規則視窗 ▲▼ 026_分割視窗_Bar ▲▼ 01_AUTODialogBar 02_DialogBar 03_OpenGL 簡單機器手臂加上Bar {痞客邦} 04_靜態分割視窗3個+Bar 05_靜態分割視窗+Bar 06_靜態分割視窗+Bar+按鈕會動 07_靜態分割視窗+Bar和事件駐點移動 08_靜態分割視窗+formview 09_靜態分割視窗+formview+按鈕控制 027_文章 ▲▼ 01_C++函式庫電子檔 02_VC文獻 03_VC網站網址 04_自製教材 06_純C的教學 07_常見演算法_純C_純JAVA 河內塔 費 式數列 巴 斯卡三角形 三 色旗 老鼠 走迷官(一) 老 鼠走迷官(二) 騎士走 棋盤 八個皇 后 八枚銀 幣 生命遊戲 字串 核對 背 包問題(Knapsack Problem) 雙 色、三色河內塔 蒙地卡羅法求 PI Eratosthenes 篩選求 質數 超長整數 運算(大數運算) 長 PI 最大公 因數、最小公倍數、因式分解 完 美數 阿 姆斯壯數 最大訪客數 中 序式轉後序式(前序式) 後序式 的運算 洗撲 克牌(亂數排列) Craps 賭博遊戲 約 瑟夫問題(Josephus Problem) 排列 組合 格雷碼 (Gray Code) 產生 可能的集合 m元素集合的n個元 素子集 數 字拆解 得分排行 選 擇、插入、氣泡 排序 Shell 排序法 - 改良的插入排序 Shaker 排序法 - 改良的氣泡排序 Heap 排序法 - 改良的選擇排序 快速排 序法(一) 快速排 序法(二) 快速排 序法(三) 合併排序 法 基數排序 法 循 序搜尋法(使用衛兵) 二 分搜尋法(搜尋原則的代表) 插 補搜尋法 費 氏搜尋法 稀 疏矩陣 多 維矩陣轉一維矩陣 上 三角、下三角、對稱矩陣 奇數魔方陣 4N 魔方陣 2(2N+1) 魔方陣 堆 疊 - 使用陣列實作 堆疊 - 使用鏈結實作(C 語言動態記憶體宣告) 堆 疊 - 使用 Java 作物件封裝 佇 列 - 使用陣列實作 佇列 - 使用鏈結實作(C語言動態記憶體宣告) 佇 列 - 使用Java 作物件封裝 自產生程式 (quine) 08_檔案格式 09_砍站軟體 10_純C++教學網站_從基本到進階(SLT) nknucc_CPP_Web(C++教學WEB_類別介紹很詳細有簡易範例講解) 完整C_C++教學文件(Qt的教學網站) 超完整Algorithm 超完整C與C++語言 cpp_string(教學文件) 028_平台程式 ▲▼ 029_多執行緒Thread ▲▼ 00_純C++ 使用 pthread 函式庫實作thread Thread1(使用CEvent來控制Thread的啟動) Thread2(一個CEvent只能控制一個Thread) Thread3(可以一個事件驅動多個Thead) Thread4(建立執行緒、同步啟動執行緒、執行緒恢復執行) Thread5(利用UI控制Thead的執行) Thread6(利用WaitForSingleObject控制Thead的執行) Thread7(利用一個WaitForSingleObject控制一個Thead的執行) Thread8(執行緒呼叫UI函數) Thread9(使用普通的「事件」來實現多執行緒的啟動,另外在執行緒中,呼叫dlg的函數) Multithread_Struct(傳遞Class且執行緒間共用變數) Thread10(3_01)(拿第3版修改,新建立一個整合log執行緒,透過carray來紀錄所有log,log執行緒在依序將carray資料紀錄到all.txt中,實現多的thread寫同一檔案的技巧)『實現多的執行緒(thread)寫同一個檔案 標準參考範本』 可以正確傳輸任意檔案程式MFC_執行緒版 砍補檔核心類別測試程式(執行緒版) -CreateFileCopyDelete 030_如何開啟關閉別人程式 {痞客邦} ▲▼ 01_OPenClose 02_test_CreateProcess-->與其它範例不同的地方在於其他範例是透過FindWindow來取得視窗hand,但此範例是透過CreateProcess啟動程式時記錄視窗hand,因此可精準得知每個視窗狀態,以方便操作 03_TopShowDlg 04_可以設定多組日期把特定程式關閉並在沒有定義的日期啟動 05_啟動Word並且輸入一個英文字母 06_啟動別人程式並修且隱藏菜單_去除系統按鈕_去除標題列 07_Control_It_Size------------------------------------>可任意輸入程式標題之後選擇該視窗並動至顯示狀態 08_開啟與關閉IE 09_Call_GOMPlayer 10_VC_建立進程執行並紀錄進程輸出(使用CreateProcess,CreatePipe api實現cmd類型程式輸出訊號轉到檔案) 11_VC PROCESS IO [PING 127.0.0.1]『使用CreateProcess,CreatePipe api實現cmd類型程式輸入/輸出訊號由呼叫者寫入與讀取 標準參考範本』 12_VS2008ExecuteAConsole 『VS2008 使用CreateProcess,CreatePipe api實現cmd類型程式輸入/輸出訊號由呼叫者寫入與讀取 標準參考範本』 13_OpenCloseVLC(VC6 透過C++一行一行讀取檔案,sscanf 字串拆解,CArray存放CString,透過 純『FindWindow、PostMessage』API) 14_VLC_Open_Move_Cmd(project)(讀檔,移動視窗,VLC是可攜版)『C++自訂註解 標準參考範本』 15_CreateProcessCallCmd『CreateProcess執行(開啟)程式代參數並等待執行結束 標準參考範本』 031_字串處理 ▲▼ 01_Ascll2StrInt {痞客邦} 02_DOS單純字元陣列對拷 03_Get_CRLF 04_GPSDataSave----->裡面有很多字串觀念技巧(GPSString) {痞客邦} 05_GPSGetData------>裡面有很多字串觀念技巧(GPSString) 06_MFCString 07_純C++_數字和字串直接合併的函數應用 {痞客邦} 08_分解字串中的距離數字 09_字串任意取值_Mid 10_字串任意取值_Mid_抓取檔案路徑並修改 11_字串合併 12_指標字串初始化與計算字串長度 13_模擬4顆七段顯示器動作 14_test_CString2chrstr 15_test_利用CString把十進位變成十六進位 16_字串與時間互轉----------------------->也有時間相減計算天數,計算昨天,明天的年月日 [CTimeCTimeSpan 和 VS2008CTimeSpanCTime 是CTime和CTimeSpan使用『標準參考範本』] 17_test_使用sscanf快速完成字串分割 18_test_char_CString__variant_t------------------>透過「CString」指定資料給「_variant_t」之後再複製給「char」 19_純C++字串與類別範例 20_CString _MakeUpperLower大小寫轉緩 21_CutString----------->MFC字串搜尋和拆解組合 22_完整檔案路徑拆解路徑與檔名 24_有說明sscanf高階用法 25_MFC_sscanf_pro 26_字串擷取Mid與字串變數字atol 27_VS2008CString『VS2008 CString 轉換成 LPTSTR;LPTSTR ->int;LPTSTR ->float;int -> CString;Unicode下CString轉換為char *;sscanf;Unicode下char *轉換為CString 標準參考範本』 28_CArray2FIFO(將字串CArray變成FIFO來使用) 29_CString2CTime『 CString和 CTime 互換 標準參考範本』 30_VS2008_URLEncode 『純C++ UTF-8、ANSI 字串轉換 標準參考範本』 31_字串XOR編解碼「將字串轉換成數字的csv檔方式儲存」完整範例 『純C++ 字串轉換成數字的csv檔方式儲存、讀取、XOR編解碼 標準參考範本』 {痞客邦} 32_HTML解析_C++ 33_純C++字串比對出現次數(CPP_countNumOfSubstringInString) 34_純C字串比對出現次數(C_countNumOfSubstringInString) 35_CStringArray_Sort 『CStringArray、MFC字串排序、Sort 標準參考範本』 {痞客邦} 36_純C字串比對(比較)函數介紹範例_strcmp_strstr {痞客邦} 37_CPP_http string parser 38_RCSB 資料正規劃處理 『將字串的空白轉成逗號(多個空白換一個逗號-資料正規劃) 純C++標準參考範本』{痞客邦} 39_VC++(MFC) 繁中_簡中字串 (CString) 檔案寫入_讀取 不亂碼 文件 032_有捲軸的View ▲▼ 01_可以無限制的畫圖範例view 02_共享記憶體動態修改view的大小0 03_共享記憶體動態修改view的大小1 04_共享記憶體動態修改view的大小2_自動移動 05_共享記憶體動態修改view的大小3_手動移動 06_共享記憶體動態修改view的大小4 07_動態修改view的大小 033_自動網頁打卡程式-------------------------->CTime 使用方法 ▲▼ 034_自動網頁表單填寫 ▲▼ 035_抓字體的外框 ▲▼ 036_其它 ▲▼ 01_8136_3asix 02_DOS程式在執行完成停住等待關閉 03_formview 04_GA函式庫 05_GetPass_Src 06_GPSGetData 07_IE控制條的實現 08_SDI透明加不規則視窗 {痞客邦} 09_VC-Servic 10_VC實現CD抓軌轉WAV 11_VisSDK_Full 12_WTL字體類 13_大樂透統計程式 14_全螢幕 15_同專案內_共用變數 16_在Visual C6中使用Text_to_Speech 17_在winxp下直接驅動port 18_在你的程式中如何使用CButtonST類 19_多媒體播放 20_如何用代碼動態添加控制項 21_利用參數任意裁切視窗大小(有步驟) 22_利用鍵盤左右鍵改變視窗的大小與定位點 23_改變背景顏色(有步驟) 24_秀出MAC {痞客邦} 25_取得目前所在路徑 {痞客邦} 26_取得目前時間 {痞客邦} 27_建立物件陣列存放資料 28_怎樣實現XP風格按鈕 29_按鈕物件陣列 {痞客邦} 30_修改顯示器解析度 {痞客邦} 31_格式化A磁碟 32_執行電腦內的執行檔或開啟檔案 33_控制視窗的大小與定位點 34_設定程式維持在最上層 35_設定輸出文字字型大小與顏色 36_圖形超鏈結類 37_輕鬆實現滑動控制項 38_增加狀態欄按鈕及其它 39_關機VC 40_切換桌布 41_OPenClose_啟動別人程式並修改位置與大小 42_OPenClose_啟動別人程式並修改位置大小與形狀 43_GetConnetNoDeleteIP分析定時砍檔資料程式------------------->27_NetWork_Browse_Delete_網路硬碟刪檔Automatic定時版 44_Moniter_Set_On_OFF_設定螢幕開關機 45_K-means 色彩量化程式 46_wmp002_1_裁減視窗----------->使得對話盒具有標題列但又不顯示 47_test_CreateDirectory建立資料夾 48_Visual C++開發Spy++ 49_抓硬碟序號DrvSrlNmbr-------->列出PC上所有磁碟機並且抓取序號和XOR的值 {痞客邦} 50_由主控程式控制圖層 51_系統休眠 52_如何在windows程式中讀取bios內容 53_抓取硬體資訊 54_抓取螢幕解析度 55_系統溫度偵測ControlHWMonitor 56_寫死定時螢幕開關控制程式 57_取得程式版本和專案修改版本教學 test_version VS2015_MFC_get_version 抓取任何程式的版本資訊 58_ShellExecute帶參數呼叫程式執行------------------->建立網路信任(網路磁碟機的方法){NET USE} 59_新STB_看門狗範例 60_偵測CPU和記憶體使用率 『標準參考範本』 {痞客邦} 61_MFC_CArray範例 62_MFC_可帶參數的視窗程式 『標準參考範本』 {痞客邦} 63_MFC_Service 64_瀏覽檔案與檔案夾並直接取得路徑(使用SHGetPathFromIDList) 65_國外_音樂解編碼器 66_多重建立資料夾 {痞客邦} 67_滑鼠_鍵盤_HOOK 68_啟動控制台 {痞客邦} 69_製作使用ActiveX物件 70_偵測CPU和記憶體使用率_並分別記錄到檔案中 71_VOIP 72_check_Net(測試資料夾是否存在) 73_利用RFC868協定編寫網路對時程式(網路校時) 74_VC6執行JavaScript 75_Active control IE安全性解決 76_任意檔案列印 77_用VC6.0編寫Word插件(VC6_Plug-in ATL) 78_JavaScript 呼叫MFC 函數 79_PCA主成分分析 (如果要用請將程式碼ResultDlg.cpp用IE打開先翻譯成完整簡體,之後再貼到WORD翻譯成繁體,最後貼回程式碼中覆蓋,另外pcadata01.xls為測試資料,可以驗證的理論在PCA_02.pdf的18頁) 80_Open Navigator Engine (開放原始碼的瀏覽器) 81_GetMediaLen(取得影片長度)『取得影片長度 標準參考範本』 82_VC_BASIC解譯器(BASIC Script) 83_C++解譯器(C++ Script) 84_MFC_call_VBA 85_VC creat JS_VS(Java Script、VB Script 的解譯器) 86_MP3Player(VFW) 87_MP3Player_LOOP版 88_like_MMS Server (DirectShow Stream http OutPut) 89_Object Oriented C(模擬物件導向的C語言程式設計) 90_Convert C++ Code file to HTML 91_C++_壓縮 92_if_defined(#if和#if defined的使用) 93_GetFileSize(透過 API抓檔案大小) 『抓檔案大小 標準參考範本』 94_test_VS2008_MFC_NET(MFC+NET元件) 『MFC+NET元件+安裝 標準參考範本』 95_簡易算命程式 96_利用wget實現網頁自動登錄與下載對應網頁 {痞客邦} 97_Monitor_Sleep和create_key 01. {2016/11/11 交貨JCC 價值 NT2000} -Monitor_Sleep[讀取檔案密碼比對、縮小程式到工作列、螢幕開關] -65_BASE64加上xor編解碼(純c windows和Linux) [只用產生密碼] -VC++中CString、char 之間的相互轉換[Unicode設定下] 02. -使用API阻止系統休眠 037_建立安裝軟體 ▲▼ 01_GkSteup 02_SetupGenerator 03_Smart Install Maker5.1 04_NSIS(2016年開始用這一套) 038_氣泡排序 ▲▼ 01_一維由大到小bobo 02_二維由小到大bobo 03_氣排與動態配置記憶體 {痞客邦} 039_矩陣運算 ▲▼ 040_記憶體映射相關程式 ▲▼ 01_Map_memory 02_VB_VC_記憶體映射整合範例 03_矩陣式記憶體映射 04_矩陣式記憶體映射 (1) 041_配合DCS_900網路攝影機的無框裡覽器 ▲▼ 01_無外框定位透明瀏覽器1 02_無外框定位透明瀏覽器2-0 03_無外框定位透明瀏覽器2-1 04_無外框定位透明瀏覽器2-2 05_維持在最上層 06_維持在最上層四個JAVA加底圖和使用參數檔(豐原醫院) 07_維持在最上層並利用參數檔改變大小位置 08_維持在最上層兩個JAVA加底圖和使用參數檔 042_動態配置記憶體 ▲▼ 01_C_C++兩種動態配置記憶體寫法 02_new_delete重點在於字串陣列釋放記憶體錯誤解決 03_一維動態配置記憶體 04_使用純C++串流方式將物件資料以二進位方式儲存 05_動態配置記憶體加上氣泡排序 06_動態配置記憶體矩陣乘法 07_結構動態配置記憶體 08_超重要觀念_動態配置字串一定要結尾 09_文章 043_控制系統音量 ▲▼ 044_進制轉換 ▲▼ 01_2進位轉8進位 02_2進位轉10進位 03_2進制轉16進制 04_8進位轉10進位 05_10進位轉2進位 06_16進位轉10進位 07_C_C++進制轉換類別----->裡面有很多字串觀念技巧 045_量時間 ▲▼ 01_ftimeb紀錄程式運算所花費的時間 02_取得目前時間 03_定時判斷是否可連上網際網路並做時間記錄 04_時間變字串 05_文章 046_傳送自訂事件 ▲▼ 傳送自訂事件0 傳送自訂事件1 傳送自訂事件2 047_圖學程式 ▲▼ 048_對話盒相關 ▲▼ 01_DlgTable 02_Modeless按鈕加上事件回應並顯示ICON 03_Modeless獨立用法 04_ProjComb_list_edit 05_RichEditDlg 06_VFW對話盒_可隱藏顯示畫面 07_view傳值給對話盒1 08_view傳值給對話盒2 09_不用DDX_DDV來更新資料的方法 10_串列讀檔與ComboBox的應用 11_多頁面對話盒範例 12_在初始化時改變對話盒大小和顯示位置 13_改變對話合位置和大小 14_使用選字型對話盒 15_拖動無框對話盒 16_按鈕控制 17_按鈕控制_MAC_視窗縮小 18_修改對話盒的標題Title 19_對話盒互傳資料 20_進度表0 21_進度表1 22_對話盒互傳資料加上對話盒隱藏 23_對話盒切換 24_對話盒加功能表 25_對話盒繪圖 26_對話盒顯示網頁 27_test_Dlg_Esc_擋掉Esc的功能 28_test_IP_Box_對話盒IPBOX 29_wmp002_2_裁減視窗_設定視窗大小和位置 30_對話盒底色修改 31_透過XML設定檔裁減(切)定位視窗 32_對話盒背景顏色設定 33_設定靜態文字方塊背景顏色和文字顏色 34_MFC_Tab_Control範例 35_兩個對話盒切換顯示隱藏關閉應用 36_對話盒直接使用TABCONTROL 37_Combox_特定檔案清單顯示程式 38_對話方塊的屬性設為了無title bar,任務欄中沒有了圖示的解決方法 39_永遠使視窗獲得焦點(文件內資料->如何在對話方塊中加入工具條;如何改變對話方塊的形狀;如何實現非客戶區移動;如何使對話方塊初始為最小化狀態;如何在對話方塊中加入狀態條;如何有效地使初始視窗不顯示;對話方塊的全屏顯示;如何在2K/xp下使窗口獲取焦點;使你的對話方塊位於最頂端;如何動態放大/縮小對話方塊;如何讓對話方塊回到螢幕中來;如何給對話方塊添加或去掉最大/最小化按鈕;改變滑鼠指標;改變對話方塊的前景和背景色;在任務條上不顯示圖示;加入上、下文幫助) 40_test_ListControl資料表使用(可以點選資料表內容將資料刪除,並取出資料放到文字方塊,和新增資料筆數) 41_Disable_ESC(讓對話盒對ESC完反應->非停用OnOK的類似方法) 42_SetBkColor_test(改變元件顏色,GetDlgItem,pWnd->GetDlgCtrlID(),SetBkColor,SetTextColor) 43_CButton Array MFC(元件陣列) 44_實現對話方塊啟動時隱藏 文章 049_碩士論文程式 ▲▼ 050_網路程式 ▲▼ 01_CodeProject_FTP_SERVER 02_DOS網路程式 03_HTML2BMP 04_Map_memory和網路程式 05_TimerServer 06_不重新啟動Windows直接更改IP地址 07_允許多人連線並且事件回應Server和Client 08_可以正確傳輸任意檔案程MFC版 09_可以正確傳輸任意檔案程式DOS版 10_可以正確傳輸任意檔案程式MFC_執行緒版 11_可以正確傳輸任意檔案程式MFC_執行緒版_實際IP 12_只能傳輸文字檔程式 13_自動抓取網頁原始碼 14_自動抓取黃曆 15_自動抓星座運勢 16_自動抓星座運勢(有主控) 17_判斷是否可連上網際網路 18_使用IE控制項的一些有趣方法 19_定時判斷是否可連上網際網路並做時間記錄 20_無外框定位透明瀏覽器 21_無外框橢圓瀏覽器 22_黃曆與星座整合 23_簡易網站連線測試並下載網頁內容 24_建立網路磁碟機(具有登錄功能) 25_單一網址抓圖程式 26_網頁下載 27_網址抓檔(讀讀取檔案網址) 28_PortScan判斷是否該網路服務不穩 29_VC_FTP_續傳 30_自己撰寫簡易FTP檔案下載程式 31_00依照下載清單和FTP設定檔下載FTP檔案 31_01依照下載清單和FTP設定檔下載FTP檔案_Timeout設定_ANSI2UTF8切換FTP目錄 (ANSI轉UTF-8) 32_使用 CInternetSession 封裝多線程 http 檔下載 33_自己寫_使用MFC下載Http檔案 34_WebShowImage自動產生對應秀圖的Html並顯示 35_透過(net use)建立網路磁碟連線並判斷結果CreateRunNetUseBat 36_在區域網路指定IP取得MACGetIP2MAC 37_HTTP檔案分段下載再合併 38_Get_IP 39_EMAIL程式內網對內網可用 40_可用Bat設定IP並在設定當中直接等待 41_VC_WEB封鎖右鍵 42_GoogleMail(WEB開啟Google,可縮小到工具列,新增m_Web.SetSilent(TRUE)防止javascript錯誤訊息) 43_FTP_UpLoad 44_VC_HTTP_POST codeproject範例_測過可用 testhttppost_自己撰寫_會動 45_DownLoad_RSS_WMV(下載大愛WMV新聞) 46_MultiThreadFTP(2010-07-27下載社資log)(01_CArray、02_FTP、03執行緒) 01->單純讀取固定清單多執行緒 02->可透過BAT開多個病毒取不同清單 03->可指定下載區間 04->設定FTP延遲時間 47_VC_Ping(code project 範例) 48_Telnet C 49_ARPTable 50_STBMMSStream(利用C#讀取MMS SERVER連線IP並存到檔案,之後利用C++撰寫比對IP程式並透過NET USE 傳送MSG到指定STB) 51_MFC_configuring_Firewalls_VS2010(VC 控制防火牆) 52_Proxy SERVER 53_VC_Enhance netstat(可以觀察和刪除TCP/UDP連線狀態,可得知是哪一個程式在連接網路) 54_P2P(UDP穿透NAT)-hackchina下載 55_noc_h_SendEmail(XML設定檔和CDATA用法,寄信後儲存寄信內容,TXT載入到CEdit中,CButton的停用與啟用,BMP的載入與透過CStatic切換顯示,tw-airnet帳號OK) 56_可寄附加檔案的email 函式庫與範例(sourceforge範例,VS2008編譯OK) 57_jash痞客幫充流量程式(CArray,sscanf,純C++一次讀一行,Timer,取0~N的亂數,WEB元件) 58_Jmail(Email超強元件) 59_wget_ftp(支援續傳,中文路徑) 60_駿成_IE 01(修改USB5TV1306版,URL經過字串XOR編解碼) 02(USB_Fram)『純C++ 字串轉換成數字的csv檔方式儲存、讀取、XOR編解碼;SDI專案改變標題Title;用程式碼移除主選單;用程式碼停用視窗的放大鍵;專案建立時不要建立TOOLBAR和狀態列;標準參考範本』 03(修改02新增畫面大小控制和螢幕解析度抓取) 04(禁止手動調整大小 ,CFrame無邊框的寫法<未啟動>)『SDI 介面 禁止手動調整大小 ,無邊框的寫法 標準參考範本』 05(修改訊息為英文) 06(修改標題和新增當雙點滑屬改變大小馬上調整回來) 61_VC_Domain查IP 62_VC_網路爬蟲 63_MFC_telnet 64_簡單的ARP攻擊 65_PortMonitor 01(視窗縮到系統工具列,CSocket連線判斷 ,改變元件顯示顏色,GetDlgItem,pWnd->GetDlgCtrlID(),SetBkColor,SetTextColor) 02(維持在最上層(Top),視窗縮到系統工具列,CSocket連線判斷 ,改變元件顯示顏色,GetDlgItem,pWnd->GetDlgCtrlID(),SetBkColor,SetTextColor) 03(新增MP3聲音提醒) 66_TelnetServer(未經測試) 67_Set_IE_Proxy 68_SEO(衝網站流量) 69_VC_remove_cookie 70_LINUX_WINDOWS FTP SERVER C++(FTP SERVER 函式庫) 71_CreateProcessCallCmd(wget_ftp) 『利用BAT配合wget下載FTP檔案(並等待下載完成) 標準參考範本』 72_Windows_純C_SMTP(Send Email) 73_(純C++)善心人士重新打包WINSOCKET的類別 74_VC++_thread_socket[文字模式_使用API ] 75_Windows_CodeBlocks_socket_project CB_socket_HttpPost CB_socket_ShowIP Windows 純 C_C++ 使用 SOCKET Server/Client 76_C++ Modbus TCP 77_MFC_P2P 78_VC實現DDOS 文章(修改Proxy設定值,自動儲存網頁,利用 net use 連結網路磁碟機並將結果存到文字檔中的方法,使用WNetAddConnection2_IPC空連接測試代碼,跳出另存網頁視窗,VC使用WEB迅雷,VC使用IE功能表功能,VC控制防火牆) 051_影像處理 ▲▼ 01_formview動態二值化(影像處理) 02_切割_儲存 03_投稿相關 04_秀圖和抓像素值和簡易複製_ALL 05_其它(20051018-1加上timer秀圖;20061028最基本引用秀圖物件;BMP函式庫;CxImage;VB結合VC作影像處理DLL;VS2005方法;在MFC應用程式中顯示JPG;抓螢幕存檔_00;測試圖片;載入相對路徑圖片;影像追蹤論文基本實現程式) 06_格式轉換 07_顏色轉換公式 08_影像處理與電腦視覺(第六版)_簡報(pptx)和C語言程式 09_OpenCV環境架設和基本實作 OPENCV+CODEBLOCK(純C++)整合 opencv入門教學PDF codeblocks_opencv_test opencv_build.rar 安裝步驟[opencv編譯+引用步驟] 標準安裝所需的教學影片和TOOL 10_FreeImage 單純取的影像寬高 單純讀取RGB 單純縮圖 11_建國科技大學-數位訊號處理(影像處理期中報告) C語言數位影像處理:Windows/X-Window(附範例光碟)函式庫 12_CodeBlocks OPENCV 2.4.9 基本影像處理[彩色轉灰階(CB_OpenCV249_Rgb2Gray)] 此範例是為了實現 01.自己利用抓取像素方式撰寫彩色轉灰階 [IplImage] 02.利用CV讀取影像彩色轉灰階 [Mat] 03.比較上面兩種方法運算速度的差異 04.IplImage 和 Mat 互轉 // IplImage to Mat IplImage *img; cv::Mat mat(img, 0); // Mat to IplImage cv::Mat mat; IplImage *img = IplImage(mat); 13_CodeBlocks OPENCV 2.4.9_圖片放大_切割(分割)擷取_保存(儲存) 14_CodeBlocks OPENCV 2.4.9_圖片_合併(串接)_保存(儲存) 15_CodeBlocks OPENCV 2.4.9 KNN 手寫數字辨識 opencv249_knn_digital_number01[從原圖產生KNN所需訓練圖檔]-彩色轉灰階cvtColor、圖片定位+切割copyTo、圖片存檔imwrite opencv249_knn_digital_number02[從訓練圖檔實現KNN手寫數字辨識]-把圖形資料從RGB變成32F的格式convertTo、把M*N的圖像變成一維數列reshape、KNN分類器CvKNearest 052_撥放聲音可調播放器音量 ▲▼ 053_數位電視整合且防呆 ▲▼ 054_數值積分 ~ [RungeKutta二階 /二皆低通濾波器 / 六階式RungeKutta / 相對應matlab驗證] ▲▼ 055_模擬鍵盤 ▲▼ 056_選單與工具列 ▲▼ 01_Menu控制 02_toolbar 換底色的問題 03_ToolBar控制 04_建立右鍵選單(PopMenu) 05_動態改變已存在的選單的文字 06_動態改變已存在的選單的文字1 07_選單切換與Title完全修改 057_錄音 ▲▼ 錄音範例1 錄音範例2 testreadwav(用C的方法->二進位讀檔,讀取WAV的資料定將結果轉換成16進位的方式存到檔案中,和UltraEdit-32的顯示一制) 058_豐原醫院整合 ▲▼ 01_配合硬體_無正式使用 02_透過網路攝影機_目前正在使用 059_類別基礎觀念 ▲▼ 01_const的成員函數 02_C++ 運算子 重載(多載)[Operator Overload] 03_Overload 04_純虛擬函數 05_VirtualFunction 06_不用虛擬函數父類別指標存取子類別函數 07_父類別指標對動態配置子物件刪除方法 08_向量類別 09_向量類別(類別檔案獨立) 10_繼承函數完全相同+覆載函數 11_建立Namespace 12_PubPriPro 13_類別樣版與繼承 14_繼承函數完全相同 15_類別私有變數可直接為公有函數的輸出範例 16_保護_私有變數被公用繼承時的特性測試 17_C++類別關念 C++中Overload、Overwrite及Override的區別 {痞客邦} C++與Java在嵌套類方面的比較 18_技術文件 060_讀取檔案 ▲▼ 01_純C++寫法 02_CFile的readwrite手動 03_CFile的readwrite自動 04_CFile直接開檔寫字串並換行 05_DOS版動態配置記憶體結構體讀檔 06_純C寫法 07_Ini檔存取 08_串列讀檔 09_串列讀黨和C++寫檔 10_利用檔案對話盒配合讀檔指令與動派配置記憶體讀檔 11_使用純C++串流方式將物件資料以二進位方式儲存 12_檔案建立與刪除 13_讀取檔案找出特定字串所在段落 14_讀取檔案並另存新檔 15_test_NetWork_File_透過IP方式在網路硬碟上建立檔案並寫入資料 16_test_NetWork_File_透過IP方式在網路硬碟上刪除檔案 17_BrowseDir_瀏覽指定目錄下的所有檔案(網路磁碟也可以) 18_test_CopyFile_API_檔案複製(網路硬碟可用) 19_SearchFile_檔案搜尋 ├01(檔名要完全一置) ├02(檔名先全部轉小寫,之後只要有部份相同即可) ├SearchFileCmd 『CArray,檔案搜尋_檔名先全部轉小寫_之後只要有部份相同即可 標準參考範本』 20_NetWork_Browse_Copy_網路硬碟補檔 21_C_Cpp_write_save_file_純C_C++容忍存取檔案內容字串空白 22_NetWork_Browse_Delete_網路硬碟刪檔 23_NetWork_Browse_Delete_網路硬碟刪檔Automatic版 24_NetWork_Browse_Copy_網路硬碟檔案複製Automatic版 25_NetWork_Browse_Copy_網路硬碟檔案複製_Schedule_Automatic版 26_read_write_MySQLInfor-->利用檔案對話盒和純C++串流方式產生相關參數檔 27_NetWork_Browse_Delete_網路硬碟刪檔Automatic定時版 28_test_Analyse_Data_讀檔拆字串並分類產生檔案 29_非正規XML 分析 30_IP_檔案對應補檔(0:AV+info、1:Data+info、2:可任意設定但沒有info) 31_NetWork_Data資料夾補砍檔 32_使用標準MSXML物件讀寫XML檔案 ReadMultiLevelXML(取得目前路徑,有標準xml步驟,多層且標籤名稱相同XML搜尋)[XML標準參考範本] 33_NetWork_Browse_Delete_網路硬碟Automatic_XML版----------------->可自定路徑 34_Unicode 35_檔案搜尋_檔案屬性_教學文件 36_Create_2003AD_User->使用快速分解字串方法,並產生可直接新增2003 AD帳號的批次命令檔 37_Read_PDF 38_砍補檔核心類別測試程式(執行緒版) -CreateFileCopyDelete 39_砍補檔核心類別測試程式-CreateFileCopyDelete 40_使用CFile_將一個檔案拆成數個檔案再合併為原檔案----------------->動態配制無符號字元(unsigned char)陣列記憶體,並利用memset作初使化記憶體;透過CFile實現檔案分割讀取與合併(PS此版本邏輯上還是有瑕疵,要用時還要再檢查一次) 41_純C++寫法一次讀這一行 42_刪除資料夾下的所有資料夾CreateDelAllDir 43_Create_5TV_mms_htm 44_拆解ipconfig的資料(透過c++方式一次讀取一行資料,並透過CString的Mid取出資料) 45_VC中判斷目錄_檔案是否存在_創建目錄_求目錄或檔大小(DOC) 45_UNICODE2ANSI(UNICODE File轉ANSI File) 46_UTF8轉ANSI(技術文件內有UTF8,UNICODE和ANSI所有轉換方法) 47_ANSI2Unicode_File(Unicode程式讀ANSI檔案,ANSI字串轉Unicode字串,Unicode程式寫ANSI檔案) 48_讀取WMV的資訊_可用來判讀檔案是否正確_Reading WMV ASF,WMA (windows media) Files 49_CDirectoryChangeWatcher(監測檔案變化事件回應) 50_CSEventPlugin_Analysis(一行一行讀取,字串比對,紀錄各字串出現次數並紀錄導檔案中) 51_MFCFindFile(mfc偵測單一檔案是否存在)ps 若網路磁碟機則需要用cmd 的"explorer 磁碟機代號:" 先開啟 52_搜尋單一明確路徑檔案(mfc偵測單一檔案是否存在) 53_ChekMediaFile(XML config,xml list download/read,確認檔案是否存在,多執行緒,CArray,c++讀檔一次一行) 54_AnalysisPlugin 01->(C++字串整行讀取,sscanf拆解字串函數) 『sscanf拆字串函數 標準參考範本』 02->(MMS網址取檔名的函數) 55_UseCRegKey(登錄資料庫新增,修改,刪除) 『CRegKey存取登錄資料庫 標準參考範本』 56_CmdPluginLog 01->(C++字串整行讀取,sscanf拆解字串函數,MMS網址取檔名的函數,CMD模式使用MFC函式庫,MFC檔案對話盒) 02->(取得昨天日期作為檔名的依據) 03->(判斷檔案是否存在) 『判斷檔案是否存在 標準參考範本』 04->(新增網芳上傳功能)-重點提示:net use的使用在路徑的最後不可以是斜線 05->(修正取MediaID程式以符合channel的格式) 06->(修正修改比對資料內容,加上USER_ID) 57_CreateSmilProcess 58_test_fgets『二進位讀/寫檔(有教學PDF檔 C和C++都有),fgets讀檔 _ 一次讀3個字元,8進位字串轉10進位數字 標準參考範本』 59_文字2圖片_圖片2文字_NABRO將圖片存入DB的方法 60_GetFileTime 『讀取指定檔案的時間屬性 標準參考範本』 61_TXTFindString『可輸入一串字串/文字_(輸入文字 可以包含空白)_和檔案內容做比較,判斷該文字是否有出現過 標準參考範本』 62_Find String and Write log from the large log(在特定檔案中找尋特定字串,並將有特定字元的字所在行號的所有文字寫到另一檔案之中做紀錄,用途WOWZA LOG分析) 63_ANSI2Unicode(VC6 下ANSI字串 轉 Unicode字串) 64_檔案檢查 CRC32 MD5(codeproject 範例) CB_MD5(純C MD5) 65_CreateWPL(wpl檔案 media player play list) 『純C++一行一行讀取檔案,計算字串長度 標準參考範本』 66_Timer_CPP_fstream 『純C++一行一行讀取檔案 利用TIMER配合狀態控制方法讀取大檔案,防止檔案太大記憶體裝不下 標準參考範本』 67_Linux_Windows文字檔換行符號互轉 68_純C一次讀取一行資料 『純C一次讀取一行資料 標準參考範本』 69_VC_CreateMuliteDirectory 『VC建立樹狀目錄 標準參考範本』 70_Parser_Movie_Duration (透過分析FFMPEG的資訊,取得影片長度) 『純C一行一行讀取檔案內容 利用strstr搜尋字串內是否有特定資料 標準參考範本』 {痞客邦} 71_目錄下檔案清單列表 (純C/C++ 檔案清單列表,並把列表結果記錄在檔案之中) 技術文件 061_數值運算 (演算法) ▲▼ 01_test_PLYV_一維多項求解 {痞客邦} 02_test_1BPLY二維多項式求值 03_test_1PMUL_多項式相乘 04_test_1PDIV_求一維多項式相除 05_test_TRMUL_矩陣相乘 06_test_4TCMUL_複數矩陣相乘 07_test_4RINV_矩陣求逆矩陣並驗證 08_test_CINV_複數矩陣求逆(反)矩陣 09_test_4SDET_計算N階方陣的行列式值 10_test_4RANK_求矩陣的秩 11_test_4LLUU__求解方陣A的LU分解 12_test_4MAQR_求解M_N矩陣A的QR分解 13_test_GAUS_利用高斯消去法求解線性代數聯立方程式 14_test_GJDN_利用高斯─約旦法求解線性聯立方程式 15_test_6CGAS_利用高斯消去法求解複數線性聯立方程式 16_test_6CJDN_利用高斯-約旦法求解複數線性聯立方程式 17_test_6TRDE_求解三對角線線性聯立方程 18_test_6BAND_利用高斯演算法求解帶型線性聯立方程 19_test_6LDLE_使用分解法_求解對稱聯立線性方程式 20_test_6CHLK_利用平方根法(CHOLESKY)求解對稱聯立方程式 21_test_6GGJE_利用高斯-約當消去演算法求解大型稀疏聯立方程式 22_test_6TLVS_利用Levinson遞推演算法求解n階Toeplitz型的連立方程式 23_test_7DHRT_利用對分法求非線性方程式 24_test_7NEWT_利用牛頓法求解非線性方程式 25_test_Least_Squares最小平方估測法線性方程 26_一元線性回歸模型與最小平方估測 27_純C利用遞迴方式將數字反轉 {痞客邦} 28_jburkardt_allocatable_c 29_C++ opencv Linear algebra(opencv 線性代數) 矩陣運算 矩陣- 加 減 乘 反矩陣 解聯立方程 擬合曲線(最小平方 估測) ~ 繪圖(擬合曲線結果) 靜宜大學線性代數教材 062_把程式縮到系統工作列 ▲▼ 01_test_Hide_把程式縮到系統工作列_SDI版----------->自己按照範例修改,有步驟 02_書上範例_把程式縮到系統工作列 03_alert網路範例_對話盒版 04_自己撰寫的對話盒系統ICON 05_文章 063_Windows Media Player 10 SDK ▲▼ 01_SDK 02_程式範例[7樓_音控小程式:WPL_Player、WPL選擇] 03_文件 064_實用編輯工具UltraEdit-32 中文版 ▲▼ 065_Cute_Main_Control ▲▼ 066_滑鼠控制 ▲▼ 01_滑鼠與鍵盤停用與啟動 02_隱藏滑鼠 03_test_Show_Hide_Cursor程式本身隱藏滑鼠 04_LimitCursorPos限制滑鼠移動範圍 05_hide_mouse 『Console_Timer、限制滑鼠移動範圍、取得螢幕解析度將滑鼠移開螢幕範圍達到全域隱藏滑鼠效果 標準參考範本』 067_洗版程式產生器-------------------------------------->再影像處理中也有一份 ▲▼ 068_系統溫度偵測與分析Project ▲▼ 069_ShellExecute帶參數呼叫程式執行 ▲▼ 070_CAD範例(拖拉物件,執行階段改變物件大小) ▲▼ 071_彰濱院區叫號-->內有XML讀取,對話盒視窗按照XML參數(裁切/裁減)調整大小位置,(網路磁碟)資料檔案複製與刪除,程式放大縮小,對話盒秀圖,輪流顯示文字資料,CArray應用,視窗透明參數化,視窗維持在最上層,MFC字串搜尋和拆解組合 ▲▼ 072_chtvSignage_Communication->連結遠端磁碟(net use),讀取XML並下載檔案,抓取MAC並上傳Log檔案 ▲▼ 073_配合Web全自動化補檔 ▲▼ 074_萬安保全讀卡機 ▲▼ 程式 SoyalRS232Reader-------->利用(新版20080306)標準RS232類別,外加將RS232參數放到XML,可自動讀取RS232資料,(PS:RS232和讀取XML有標準新增步驟) CHST_HttpDownLoad-------->XML標準步驟、縮到工具列標準步驟,HTTP檔案下載標準步驟 資料 SoyalRS232Reader流程圖 CHST_HttpDownLoad流程圖 075_WMEncoderSDK ▲▼ multimedia_sdk_3[1].1.0.0.exe-------->另一家的player sdk WMEncoderSDK.exe-------->Windows Media Encoder SDK 076_自動更換桌布 ▲▼ 077_維運所提出需求_設備換修補檔程式(changeNabrostb) ▲▼ 078_5TVNowNews(FTP上傳功能) ▲▼ 13版-因為機制調整重新撰寫程式傳送資訊用HTTP POST,並記錄傳送結果。 15版-已在2010-06-22放到SERVER上測試(可實際上傳到指定年份的資料夾與WEB SERVICE狀態回報) 17版-因為要修改回報網址,外加修改年份資訊從LIST擷取 18版-新增URLEncode功能【toHex(const BYTE &x);URLEncode(CString sIn);】 20版-新增 22版-修改清單路徑 23版-修改下載清單時也呼叫KEEPLIVE,回報一天總筆數,每天清晨時清掉筆數 24版-為了因應影片來源從NowNews WMV 1M變成28F MP4 4M 079_社資 ▲▼ 社資_Update-------->(01_CArray,02_XML,03_sscanf,04_取檔名_路徑,05_HTTP網路抓檔) SaveDISPLAY2jpg(以時間作為檔名技巧,註冊OCX指令) 080_eVC4 ▲▼ 081_5TV_TV_檢查 ▲▼ 082_VC_Hook ▲▼ 083_LUBITA_BT_Player(10版->已經可以全域HOOK外加無框對話盒完美控制位置大小位置和標題) ▲▼ 084_CHST_Shell_OCX(全域HOOK、XML讀和寫、無框Dlg(非裁減)+標題設定、永遠為工作視窗、隱藏和顯示滑鼠、OCX、秀圖程式(主程式帶參數)、OCX呼叫EXE、啟動程式並直到關閉才繼續往下執行,暫停一般關閉程式功能、ADSL撥接和切斷、抓與顯示ipconfig資料) ▲▼ 085_程式執行後自動銷毀 ▲▼ 086_Real Time 函式庫 ▲▼ 087_萬安保全(小馬) ▲▼ 088_USB_5TV(全域HOOK(滑鼠)、XML設定畫面大小、XOR和Base64編碼、抓磁碟序號和種類、判斷網路正常與否、判斷檔案存在與否、抓MAC、透過網頁回寫資料、判斷USB是否存在、阻擋OnOK和ESC) ▲▼ 089_VC_CreateISO(利用MagicISO來做快速連續產生ISO工具) ▲▼ 090_VC_ plug-in ▲▼ 091_VC-Delete IE Cookie ▲▼ 092_AutoBackup[28F_APP] ▲▼ 093_p2p網路技術原理與C++開發案例 ▲▼ 094_USB_5TV與ISO產生器加密版 ▲▼ MfcSourceCode_CreateISO_8_UserDefiendTag(20131121修改執行BAT時要等待完成) 095_5TVGlobalTVCheck(內含UTF8File2ANSIFile函數) ▲▼ 5TVGlobalTVCheck_01(GetWebFile有步驟) 5TVGlobalTVCheck_02(UTF8File2ANSIFile) 5TVGlobalTVCheck_03(DissolutionDataString->拆字串並存到CArray) 5TVGlobalTVCheck_04(播放GlobalTV->20S切換一個頻道) 5TVGlobalTVCheck_05(持續播放GlobalTV,並具有記錄是否可播放與何時開始播放[20S內]) 5TVGlobalTVCheck_06(下載WebService資料並拆解到記憶體中) 5TVGlobalTVCheck_07(初步比對播放清單與WebService資料) 5TVGlobalTVCheck_08(已產生add和disable的清單->未上線所有功能OK) 5TVGlobalTVCheck_09(呼叫CallWebService) 5TVGlobalTVCheck_10(刪除比較字串的前後空白字元) 5TVGlobalTVCheck_11(修改記錄時間字串) 5TVGlobalTVCheck_12(修改顯示介面外加將CLOSE功能關閉變成縮小,呼叫CallWebService縮小,呼叫外部程式CreateProcess並等待外部程式執行完畢) 096_VS2008_CString2char(2008_MFC字串轉char) ▲▼ 097_VS2008_CallWebService->(MFC+.NET+克服Unicode程式讀和寫ANSI編碼資料) ▲▼ CallWebService_01(MFC+WebService的DOS程式) CallWebService_02(新增純C的讀檔程式) CallWebService_03(新增VC的讀檔程式(ㄧ行一行讀取),並且呼叫R先生的WebService) CallWebService_04(包含四個狀態呼叫四個WebService) CallWebService_05(修正中文亂碼) CallWebService_06(防呆確定檔案存在) CallWebService_07(防呆try-catch每一行WebService程式) 098_VS2008_MFC_MediaPlayer(重點要修改系統產生的H檔案) ▲▼ 099_VS2008_addMFCLib(因為MFC+NET的專案會導致MFCLib不能選擇靜態連結,專門用來安裝MFC LIB) ▲▼ 100_VS2008_Check5TVEncoderChannel ▲▼ Check5TVEncoderChannel_01(Real XML,『UTF8 to ANSI and File』,MFC+NET,CArray) Check5TVEncoderChannel_02(關閉功能變縮小,修改顯示字串) Check5TVEncoderChannel_03(新增XML防呆與WebServic防呆) Check5TVEncoderChannel_04(刪除PLAYLOG,顯示頻道與載入時間) Check5TVEncoderChannel_05(停用改變標題功能) Check5TVEncoderChannel_06(新增程式只能執行一次OnlyOneCheck函數,配合排程) Check5TVEncoderChannel_07(恢復不能播放的log紀錄) 101_VC防火牆 ▲▼ 102_NabroSTBTool(XML讀取參數設定檔、下載STBList檔、將STBList資訊放到CArray中、下載所有uid對應的檔案清單、新增砍補檔類別CFileCopyDelete、新增CNetUsebat類別修改、Info檔頭函數、OnlyOne、多執行緒) ▲▼ NabroSTBTool_01(XML讀取參數設定檔) VS2008NabroSTBTool_01(XML讀取參數設定檔) NabroSTBTool_02(下載STBList檔) VS2008NabroSTBTool_02(下載STBList檔) NabroSTBTool_03(將STBList資訊放到CArray中) VS2008NabroSTBTool_03(將STBList資訊放到CArray中) NabroSTBTool_04(下載所有uid對應的檔案清單) VS2008NabroSTBTool_04(下載所有uid對應的檔案清單) NabroSTBTool_05(新增砍補檔類別CFileCopyDelete) VS2008NabroSTBTool_05(新增砍補檔類別CFileCopyDelete) NabroSTBTool_06(修改砍補檔類別CFileCopyDelete,新增CNetUsebat類別) VS2008NabroSTBTool_06(修改砍補檔類別CFileCopyDelete,新增CNetUsebat類別) NabroSTBTool_06(修改砍補檔類別CFileCopyDelete,新增CNetUsebat類別) VS2008NabroSTBTool_06(修改砍補檔類別CFileCopyDelete,新增CNetUsebat類別) NabroSTBTool_07(修改砍補檔類別CFileCopyDelete,修改CNetUsebat類別) VS2008NabroSTBTool_07(修改砍補檔類別CFileCopyDelete,修改CNetUsebat類別) NabroSTBTool_08(判斷各點的檔案狀態,修改CNetUsebat類別) NabroSTBTool_09(修改Info檔頭函數) NabroSTBTool_10(輸入單一點位實際刪補檔) NabroSTBTool_11(輸入單一點位實際刪補檔,修改成有畫面的等待) NabroSTBTool_12(換修STB用)(輸入單一點位實際刪補檔,修改成有畫面的等待,新增IPMappingUid.txt功能) NabroSTBTool_13(全自動全部實際刪補檔) NabroSTBTool_13_X(全自動全部模擬刪補檔) NabroSTBTool_14(全自動全部實際刪補檔,OnlyOne) NabroSTBTool_14_X(全自動全部模擬刪補檔,OnlyOne) NabroSTBTool_15(全自動全部實際刪補檔,OnlyOne,多執行緒) NabroSTBTool_15_X(全自動全部模擬刪補檔,OnlyOne,多執行緒) NabroSTBTool_16_X(執行緒) NabroSTBTool_16_X_00->開50個執行緒下載所有STB影片清單 NabroSTBTool_16_X_01->判斷50個執行緒執行續執行完畢並結束程式 NabroSTBTool_16_X_02->連結網路磁碟機並執行補砍檔,發現50個執行緒在無網路下咬死 NabroSTBTool_16_X_03->連結網路磁碟機並執行補砍檔,.修正執行緒產生判斷式並將執行緒改為10個 NabroSTBTool_16_X_04->修改因建立物件陣列但無呼叫建構子所導致所有物件陣列內物件均無法讀取XML的問題 NabroSTBTool_16_X_05->刪除過程檔案及記錄連線狀態 NabroSTBTool_16(執行緒) 103_SQLite在VC下的使用(SQLite 是用C語言編寫的開放資料庫,主要用於嵌入式,你也可以把它集成在自己的桌面程式中) ▲▼ SQLiteMFCCmd SQLiteMFCCmd01(有標準SQLite存取動作,另外將db值寫到文字檔) SQLiteMFCCmd02(將所有的動作獨立分開,並且可以輸入要紀錄的字串) SQLiteMFCCmd03(修改02,新增時間欄位)『SQLite 標準參考範本』 SQLiteMFCCmd_BLOB(二進位資料)『SQLite "Binary data I/O" 標準參考範本』 SQLiteMFC(GUI 將所有動作分開,並可用CString動態新增內容) SearchFile2SQLite project SearchFile2SQLite01(讀取XML設定檔,搜尋相對應副檔名的檔案並將陸境紀錄到檔案中,透過CString的函數Find找到副檔名的所在位置) SearchFile2SQLite02(將蒐集到的資料存到DB中,最後再輸出到文字檔) SearchFile2SQLite03(執行緒和顯示檔案路徑) SearchFile2SQLite04(最後的訊息顯示有幾筆資料,使用unsigned long(無號長整數) 來計數) StatisticsSQLite(VS2008存取SQLite,SQLite的callback呼叫callback,判斷select語法有無搜尋到資料) SQLite_UnicodeVC 01 (CString to char,create DB,create Table,Insert Data,select Data) 02『自訂CArray內的物件類別,使用AfxGetMainWnd克服靜態成員函數(static member function)無法存取一般成員函數(member function) 標準參考範本』 03 (將XML -> DB,將 YYYYmmdd 數字 ->年月日數字,將 HHMMSS數字 ->時分秒數字,將 影片起始時間 + 片長 計算出 結束時間) 04 (產生預設的XML1和XML2,修正自定物件內CTime變數指定程式碼) 05 (簡單的自動換片排程器) 06 (防止DB資料起始時間和結束時間重複,紀錄step狀態,資料庫狀態定義為-1、0、1、2分別是未播、待播、播放、播完) 07 (修正擷取清單的判斷條件) 104_ChangeSTBforJenny(執行緒,各執行緒呼叫主緒的函數工作,各執行緒使用主緒的全域變數工作)『執行緒;CArray;CNetUsebat;CAccessforSTB;CFileCopyDelete;CSuperLabel 標準參考範本』 ▲▼ ChangeSTBforJenny01(基本ui控制,下載xml) ChangeSTBforJenny02(新增SetIPandUID功能) ChangeSTBforJenny03(所有UI控制,檔案對話盒) ChangeSTBforJenny04(註冊功能) ChangeSTBforJenny05(影片刪補) ChangeSTBforJenny06(Layout,Volume,BootTime) ChangeSTBforJenny07(UpdateData) ChangeSTBforJenny08(修改打錯字,ALLAuto) ChangeSTBforJenny09(更新UpdateData,WebInformation) ChangeSTBforJenny10(修改CFileCopyDelete) ChangeSTBforJenny12(修改註冊功能) ChangeSTBforJenny13(修改全自動功能)(目前線上版) 105_UpdateNowNewsAV(CallWebService,字集選未定,MFC設共用) ▲▼ UpdateNowNewsAV01(HTTPPOST) 106_ATL ▲▼ 01_用VC6.0編寫Word插件 02_使用ATL編寫一個簡單的COM伺服器 03_用ATL開發Windows服務(自己有做一個有步驟的範例) 04_VS2008_ATL_COM(EXE)(自己有做一個有步驟的範例) 05_ATL_DLL(codeproject) XX_Windows下元件註冊整理( 所有常見元件註冊 OCX、SERVICE、ATL(EXE) COM ) 107_DaAiNewsDownload(XML,WEB SERVICE,HTTP POST,DOWNLOAD HTTP FILE) ▲▼ DaAiNewsDownload01 DaAiNewsDownload02(防堵HTTP POST SERVER未回應錯誤) DaAiNewsDownload03 DaAiNewsDownload04 DaAiNewsDownload04_1(手動補檔) DaAiNewsDownload05(新增判斷WMV檔頭資訊) 108_VC_Encode(NOWNEWS交接) ▲▼ 20101010(單純將下載片單從TXT變成XML) 20101014(1.新增程式只能執行一次的功能,2.下載清單功能 PHP/Net3.寫log,4.判斷檔案是否存在,5.判斷媒體長度,6.偵測有無在播放,) 20101015(1.新增程式只能執行一次的功能,2.下載清單功能 PHP/Net,3.寫log,4.判斷檔案是否存在,5.判斷媒體長度(實際片子長度大於等於片單長度),6.偵測有無在播放,7.建立預設list.txt,8.若為預設list,30分後再抓一次,) 20101016(01.新增程式只能執行一次的功能,02.下載清單功能 PHP/Net,03.寫log,04.判斷檔案是否存在,05.判斷媒體長度(實際片子長度大於等於片單長度),06.偵測有無在播放,07.建立預設list.txt,08.若為預設list,30分後再抓一次,09.新增回報狀態,10.讀取XML設定檔包含SERVICE網址和LIST清單網址,11.片單時間序列防呆) 20101018(01.新增程式只能執行一次的功能,02.下載清單功能 PHP/Net,03.寫log,04.判斷檔案是否存在,05.判斷媒體長度(實際片子長度大於等於片單長度),06.偵測有無在播放,07.建立預設list.txt,08.若為預設list,30分後再抓一次,09.新增回報狀態,10.讀取XML設定檔包含SERVICE網址和LIST清單網址,11.片單時間序列防呆,12.EMAIL回報錯誤訊息) 20101020(01.新增程式只能執行一次的功能,02.下載清單功能 PHP/Net,03.寫log,04.判斷檔案是否存在,05.判斷媒體長度(實際片子長度大於等於片單長度),06.偵測有無在播放,07.建立預設list.txt,08.若為預設list,30分後再抓一次,09.新增回報狀態,10.讀取XML設定檔包含SERVICE網址和LIST清單網址,11.片單時間序列防呆,12.EMAIL回報錯誤訊息,13.新增片單資料不期防呆) 20101026(01.新增程式只能執行一次的功能,02.下載清單功能 PHP/Net,03.寫log,04.判斷檔案是否存在,05.判斷媒體長度(實際片子長度大於等於片單長度),06.偵測有無在播放,07.建立預設list.txt,08.若為預設list,30分後再抓一次,09.新增回報狀態,10.讀取XML設定檔包含SERVICE網址和LIST清單網址,11.片單時間序列防呆,12.EMAIL回報錯誤訊息,13.新增片單資料不期防呆,14.Config新增路徑參數,15.新增mail內訊息(新增網址訊息),16.新增讀取清單時回報監控系統錯誤機制) 20101027(01.新增程式只能執行一次的功能,02.下載清單功能 PHP/Net,03.寫log,04.判斷檔案是否存在,05.判斷媒體長度(實際片子長度大於等於片單長度),06.偵測有無在播放,07.建立預設list.txt,08.若為預設list,30分後再抓一次,09.新增回報狀態,10.讀取XML設定檔包含SERVICE網址和LIST清單網址,11.片單時間序列防呆,12.EMAIL回報錯誤訊息,13.新增片單資料不期防呆,14.Config新增路徑參數,15.新增mail內訊息(新增網址訊息),16.新增讀取清單時回報監控系統錯誤機制,17.新增判斷是否為多個網路磁碟機的判別功能,18.新增多個網路磁碟機定義(("5tv-m1"->"I:"),("5tv-m2"->"J:"),("5tv-m3"->"K:"),("5tv-m4"->"L:"),("mms1"->"I:"),("mms2"->"J:"),("mms3"->"K:"),("mms4"->"L:"))) 20101028(01.新增程式只能執行一次的功能,02.下載清單功能 PHP/Net,03.寫log,04.判斷檔案是否存在,05.判斷媒體長度(實際片子長度大於等於片單長度),06.偵測有無在播放,07.建立預設list.txt,08.若為預設list,30分後再抓一次,09.新增回報狀態,10.讀取XML設定檔包含SERVICE網址和LIST清單網址,11.片單時間序列防呆,12.EMAIL回報錯誤訊息,13.新增片單資料不期防呆,14.Config新增路徑參數,15.新增mail內訊息(新增網址訊息),16.新增讀取清單時回報監控系統錯誤機制,17.新增判斷是否為多個網路磁碟機的判別功能,18.新增多個網路磁碟機定義(("5tv-m1"->"I:"),("5tv-m2"->"J:"),("5tv-m3"->"K:"),("5tv-m4"->"L:"),("mms1"->"I:"),("mms2"->"J:"),("mms3"->"K:"),("mms4"->"L:")),19.修正讀取list.xml時若xml為不正確會發生的錯誤) 20101029(01.新增程式只能執行一次的功能,02.下載清單功能 PHP/Net,03.寫log,04.判斷檔案是否存在,05.判斷媒體長度(實際片子長度大於等於片單長度),06.偵測有無在播放,07.建立預設list.txt,08.若為預設list,30分後再抓一次,09.新增回報狀態,10.讀取XML設定檔包含SERVICE網址和LIST清單網址,11.片單時間序列防呆,12.EMAIL回報錯誤訊息,13.新增片單資料不期防呆,14.Config新增路徑參數,15.新增mail內訊息(新增網址訊息),16.新增讀取清單時回報監控系統錯誤機制,17.新增判斷是否為多個網路磁碟機的判別功能,18.新增多個網路磁碟機定義(("5tv-m1"->"I:"),("5tv-m2"->"J:"),("5tv-m3"->"K:"),("5tv-m4"->"L:"),("mms1"->"I:"),("mms2"->"J:"),("mms3"->"K:"),("mms4"->"L:")),19.修正讀取list.xml時若xml為不正確會發生的錯誤,20.修正檔案偵測是否存在方法) 20101111(01.新增程式只能執行一次的功能,02.下載清單功能 PHP/Net,03.寫log,04.判斷檔案是否存在,05.判斷媒體長度(實際片子長度大於等於片單長度),06.偵測有無在播放,07.建立預設list.txt,08.若為預設list,30分後再抓一次,09.新增回報狀態,10.讀取XML設定檔包含SERVICE網址和LIST清單網址,11.片單時間序列防呆,12.EMAIL回報錯誤訊息,13.新增片單資料不期防呆,14.Config新增路徑參數,15.新增mail內訊息(新增網址訊息),16.新增讀取清單時回報監控系統錯誤機制,17.新增判斷是否為多個網路磁碟機的判別功能,18.新增多個網路磁碟機定義(("5tv-m1"->"I:"),("5tv-m2"->"J:"),("5tv-m3"->"K:"),("5tv-m4"->"L:"),("mms1"->"I:"),("mms2"->"J:"),("mms3"->"K:"),("mms4"->"L:")),19.修正讀取list.xml時若xml為不正確會發生的錯誤,20.修正檔案偵測是否存在方法,21.加大list允許數量從64變成1024以防止兩天list過多的問題) 20120131_可以順利一台PC執行多個頻道(亞州西洋經典) 20101115(01.新增程式只能執行一次的功能,02.下載清單功能 PHP/Net,03.寫log,04.判斷檔案是否存在,05.判斷媒體長度(實際片子長度大於等於片單長度),06.偵測有無在播放,07.建立預設list.txt,08.若為預設list,30分後再抓一次,09.新增回報狀態,10.讀取XML設定檔包含SERVICE網址和LIST清單網址,11.片單時間序列防呆,12.EMAIL回報錯誤訊息,13.新增片單資料不期防呆,14.Config新增路徑參數,15.新增mail內訊息(新增網址訊息),16.新增讀取清單時回報監控系統錯誤機制,17.新增判斷是否為多個網路磁碟機的判別功能,18.新增多個網路磁碟機定義(("5tv-m1"->"I:"),("5tv-m2"->"J:"),("5tv-m3"->"K:"),("5tv-m4"->"L:"),("mms1"->"I:"),("mms2"->"J:"),("mms3"->"K:"),("mms4"->"L:")),19.修正讀取list.xml時若xml為不正確會發生的錯誤,20.修正檔案偵測是否存在方法,21.加大list允許數量從64變成1024以防止兩天list過多的問題,22.新增字串替換一律轉小寫防呆在磁碟機代號時) 20110214(用來實現購物台輪播以秒為單位) 20110311(用來實現購物台輪播以秒為單位-加上影片片長少60秒防呆與調整陣列大小防止比數太多導致ENCODER時間錯誤) 20110314(將60秒內防呆的關閉檔案指令刪除) 20120131(一台PC多個頻道) 20120411_可以支援自己資料夾下的BASE影片 20120709輪播台(整合1.5以秒計+2.6援自己資料夾下的BASE影片的版本-立用購物台片單測試OK) 20120709 是從2.6改2.7 20120711 是從2.7改2.8(修正起始秒數) 20120725 從2.8改2.9(修正判斷 清單時間錯誤 的部分) 20120730 從2.9改3.0(新增防呆400筆 將reload 片單改成120分一次或者看到reload.cmd檔案) 109_VS2008_64bit(有步驟圖交如何設定VS2008支援64位元程式開發) ▲▼ 110_Aderson_Key_project(64位元DLL和EXE) ▲▼ 111_CallMediaInfo(取得影片所有訊息) ▲▼ CallMediaInfo01(取得目前路徑,開啟檔案選擇對話盒選擇檔案,產生對應bat,執行對應bat) CallMediaInfo02(使用CreateProcess執行bat,並且使用WaitForSingleObject等待bat執行結束) CallMediaInfo02(兩類別cstring陣列共用變數,比對字串,顯示重要資訊Dlg) 112_H264FilesCopy_Project 「下載XML/檔案功能 標準參考範本」 ▲▼ 01->讀取蜂巢式list XML,讀取設定檔,建立執行緒 02->list XML線上抓取,list XML錯誤紀錄,建立log檔 03->實現檔案複製程式碼 04->EMAIL回報錯誤,進行實測 05->調整TIMER時間和EMAIL信件標題 06->錯誤回報系統,並且該筆所有檔案維持原狀(2010-12-20線上版) 07->新增延遲回報功能,因為網路變快(2011-01-25線上版) 08->修正沒有清除記憶體造成檔案誤刪的問題 09->修改smil路徑 10->修改回報之間的延遲時間從10S->30S 11->多一個SearchFileCmd程式 (負責產 _tv_all.smil) 12->要多產生截圖清單丟到NOWNEWS主機 13->修正12版移動截圖清單的開/關檔指令位置,觀察是否可降低程式錯誤機率 14->修正13版移動截圖清單的開/關檔指令位置,觀察是否可降低程式錯誤機率 15->參數檔新增可以修改結圖的清單路徑 113_WebPhone ▲▼ PortSIP Professional for Windows(有版權的SDK) 114_VB2VC黑客程式實現 ▲▼ 01ChangeTaskmgr(取得目前程式本身所在完整路徑檔名,從全路徑取得檔名,自行刪除程式本身EXE)『strtok拆字串函數 標準參考範本』 115_dllplugin(DynamicLoadDll(動態載入dll的程式),jashgf(內含通用型函數的dll),JashGeneralFun(通用型函數的原型))『strtok+sscanf合併使用拆字串函數,動態載入dll的程式,jash自訂通用型函數 標準參考範本』 ▲▼ 116_Direct Show_VS2008 ▲▼ DirectShow_VC專案設定_PNG MediaPlayer(書本範例) JLDirectShowPlayer_project『DirectShow player 標準參考範本』 01->選一隻影片,播完之後連續播放一支固定影片 02->修改01,選一隻影片並shift 60秒,播完之後連續播放一支固定影片[沒有刪除畫布] 117_ShopPlayer_project (VS2008) ▲▼ ShopPlayer01->(Dlg無框(非裁減)+XML設定大小; DirectShow) 『VS2008 Dlg無框(非裁減)+XML設定大小 標準參考範本』 ShopPlayer02 _ALL(Map Memory) 『VS2008 Map Memory 記憶體映射(共享記憶體) 標準參考範本』 ShopPlayer03 _ALL(正確連續透過Map Memory改變播放檔案) ShopPlayer04 _ALL(運用SSCANF拆解字串 達到片子shift功能) ShopPlayer05 _ALL(運用 CreateProcess API 開啟/關閉 Player) 『VS2008 CreateProcess API 開啟/關閉程式 標準參考範本』 ShopPlayer06 _ALL(透過在影片播放結束時觸發TIMER替換片名,來解決播放錯誤和前後影片聲音重疊的問題) 118_DirectShow_VMR9_VS2008(為了要解決 一般PLAYER 無法再延伸桌面播放問題) ▲▼ Video Manipulation00 『VS2008 DirectShow VRM9 標準參考範本』 Video Manipulation01 (新增:抓取目前播放秒數,播放暫停事件回應程式實現) 119_VMR9Player(配合WIN7可以在延伸桌面順利連續播放影片) ▲▼ VMR9Player05 _ALL( PLAYER 使用UNICODE方式編譯才可以克服WIN7上使用VMR9,清單讀取和SHARE記憶體的程式用ANSI就可以) 120_BeckPlayer(Media Player+RS232) ▲▼ 121_CreateMediaXML_project 『特定資料夾下搜尋特定副檔名的所有檔案 標準參考範本』 ▲▼ 122_PgSQL_VC_C# ▲▼ 01(VC透過ODBC取得uid和filename並且透過使用CreateProcess執行bat和使用WaitForSingleObject等待bat執行結束,C#透過Npgsql抓取IMG並把他變成圖片) 02(指修改VC ->新增上傳圖片到FTP) 03(指修改VC ->新增更新DB的is_file欄位) 123_Reverie_PC_Control ▲▼ 124_配合GraphEditPlus寫的DirectShow程式 ▲▼ 00可以自動列表設備並顯示 01可以透過查詢的方式來建立DirectShow元件 125_DeckLink_DirectShow ▲▼ WMV2Decklink_VMR 01(可播單一影片到DeckLink和螢幕) 02(可以停止播放和蟲頭播放) 03(新增播放停止事件) 04(兩支影片輪流播放) HW2HW 05(AV in ->AV out) 06(每5秒切換模式) 07(新增影片時間軸設定功能)+釋放記憶體軟體 08(SQLite) 09(新增test mode) 10(聲音從音效卡輸出,可調整音量) 11(聲音從DeckLink輸出,可調整音量)->驅動要更新到8.6 [但是db很難控制] SQLite5TVMenu[DB XML 清單控制] 下載並讀取清單_判斷影片長度_Unicode_VC DeckLink_Channel (實現XML清單->DB 程式讀取DB內容進行播放) 01(結合 SQLite5TVMenu 和 HW2HW11 的專案) 02(防止資料重複輸入DB,判斷式為起始時間和結束時間不能相同) 05(民視職棒切換) 126_DirectShow_Filter [大陸書 範例] ▲▼ 127_VC_VLC project(在Win7上透過VC 引用VLC的ActiveX 播放所有stream) ▲▼ 128_Find WMV8 project(搜尋WMV檔案路徑到SQLite,呼叫MediaInfo產稱媒體資訊檔,判斷檔案內有無特定字元) ▲▼ 01 (SearchFile2SQLite05搜尋單一目錄的WMV檔並呼叫MediaInfo取取每一個檔案的影片資訊;;CheckV8File 讀取 MediaInfo 的資訊檔案並判斷有沒有 "Windows Media Video 8"字串) 129_vbscallexe_project(wscript.shell) ▲▼ 130_C++_Script ▲▼ 131_DaAi_Bodhi ▲▼ 01(呼叫wget斷點續傳FTP檔案,呼叫ffmpeg轉WMV8,WME轉檔1M和500K) 02(程式本身新增FTP取得清單並存到SQLite,下載BAT由資料庫的資訊組合而成) 03(透過判斷BatState.txt的內容實現command line程式只能執行一次的防呆機制,轉檔完後會將該筆DB資料的IsGet設為1,修改中寄檔格式為DVD的MPEG2,安裝 LAV Filter 讓Media Encoder 支援MPEG2轉WMV9) 04(COPY FILE TO SERVER,net_use_bat) 05(Delete Local Media File,增加狀態4) 06(回報WebDB) 132_純C++_通用log檔_分析程式『sscanf拆解標準csv格式字串;C++一行一行讀取檔案;strcpy和struct陣列內字串整合應用;strlen判斷文字檔最後一行是否為空白;struct動態配置記憶體 標準參考範本』 ▲▼ 133_民視無線台畫面直接輸出程式 ▲▼ 01(程式只能執行一次(OnlyOneCheck)有步驟;非裁減對話盒無框XML調整視窗大小;Timer偵測VLC播放狀態) 『程式只能執行一次(OnlyOneCheck) 標準參考範本』 134_三屏電視_logo ▲▼ VC2008_Web(UI透明 讀XML控制視窗大小位置 隱藏滑鼠) 135_Multicast 偵測 ▲▼ 劉老師發的組播代碼(可應用於VLC stream 偵測) 136_C++ 文字檔比對lib(提供WEB、C++和QT等範例) ▲▼ 137_純C++讀寫json ▲▼ 138_純C下json函式庫與範例 ▲▼ 139_QuickLZ C(純C壓縮與解壓縮函式庫) ▲▼ 140_VC中自動改變控制項位置和大小的對話方塊類 ▲▼ 141_VC_UAC(WINDOWS 權限) ▲▼ 142_CutImageForSmooth(配合112_H264FilesCopy_Project的12版以後,自動在歸檔後產生截圖) ▲▼ CutImageForSmooth01(取得影片長度、計算一半影片長度、產生截圖) CutImageForSmooth02(配合IDC移機) 143_Code Blocks 環境安裝 wxWidgets與實作範例 ▲▼ 144_Motion JPEG Streaming Server(MJPEG)(目前只有C#程式) ▲▼ 145_生命靈數算命_C語言程式 ▲▼ 146_DES加解密演算法 ▲▼ 純C++DES加解密 純C的DES加解密 147_純C++ 存取XML和JSON(使用tinyxml和CJSON函式庫) ▲▼ C_Create_Parse_JSON(純C存取JSON) CB_readXML(純C++存取XML) 148_C++文件打包工具實現(模擬 Linux tar)[檔案合併+檔案還原] ▲▼ 01_Windows C++文件打包工具實現(模擬tar) 純C++建立多層目錄函數 純C二進制讀寫檔 純C二進制讀寫檔(結構體) 純C結構體清空『memset(&fh,0x0,sizeof(fh));』 純C字元陣列清空『memset(ObjectFilePathName,0x0,sizeof(ObjectFilePathName));』 02_使用C語言一行一行連續讀檔將檔案字串存放到C++的<vector>string變數中,之後再依序從vector變數中將值取出並透過C的字元陣列顯示出來 03_純C++讀取清單列表進行檔案打包和解打包 純C++建立目錄函數和判斷目錄是否存在函數(mkdir、chdir) 149_純C實做鏈結(Link) ▲▼ 佇列(Queue)(先進先出) - 使用鏈結(Link)實作(C語言動態記憶體宣告) 堆疊(先進後出) - 使用鏈結(Link)實作(C 語言動態記憶體宣告) 150_PID控制器 ▲▼ 05_gcyrobot_PID控制(原理介紹+直流馬達控制) XXX_C++ PID 控制器實作 數字追逐賽[自己實現PID調整] 151_Windows下CodeBlocks使用Curl函式庫簡易範例 ▲▼ 152_純C 曲線擬合[系統估測](最小平方估測法)(參考資料04CS範例中~02寫得是GUI版) ▲▼ 153_Visual C++(VC) 利用DLL和pexports.exe和lib.exe產生VC專案在編譯時所需的LIB檔 ▲▼ 154_Windows_Cpp_QrCode ▲▼ 155_CB_libcurl實作PHP登錄功能 ▲▼ 156_MFC TabUI ▲▼ 157_MFC UI畫面(視窗)自動縮放+改變字型大小 ▲▼ 158_MFC 設定元件字型大小和DPI ▲▼ 159_純C++呼叫WIN API抓取WINDOWS 螢幕DPI設定+螢幕放大率+解析度 ▲▼ 160_VC MFC UserControl(自訂控制項[元件]範例) ▲▼ 161_C++ AES File ▲▼ LINUX C OPENSSL實作AES檔案加解密 (收藏) WIN_C++_AES 檔案加解密 (收藏) WINDOWS_LINUX_C_AES檔案加解密範例 (收藏) CB_CPP_AES128_SBOX 162_純C_字串檢查CRC16 ▲▼ CB_calcrc16 CS_crc16_CCITT_TABLE 163_AI系列程式碼 ▲▼ 統計學C++專案 01_frequency_distribution_table ~次數分配表[ frequency distribution table ] 有四捨五入函數 164_VC製作USBWebserver v8.6 [PHP 元件] ▲▼ 165_璽瑞-指紋機SDK_project ▲▼ GingyTech -純C讀取文字檔 ~ 一次讀取一行資 -VC++(MFC) CStdioFile 寫入/讀取 文字檔 [部落格] -VC++(MFC) CFile 寫入/讀取 二進位檔 [部落格] -MFC開頭等待 動畫/廣告 UI畫面 (我有註解掉) -對話盒建立DC即時顯示BMP -VC++(MFC)字串拆解+checksum整合函數 -VC++(MFC) CString的16進為字串轉整數 -純C的16進為字串轉整數 suprema 指紋機 專案(VS2015) 166_類神經網路 ▲▼ C++類神經網路簡易範例(兩個XOR運算) BPN C#類神經網路 SOM Hopfield C++ OPENCV 神經網路範例實作收藏 01.3輸入XOR [保存訓練模型] 02.分類+繪圖顯示結果 167_VC++多播技術(Multicast)聊天程式 ~ P2P+Multicast技術應用 ▲▼ 168_華視電子-大陸二代證讀卡機 ▲▼ 169_VS2015-MFC(VC++)利用TCP網路配合發簡訊硬體實作即時偵測檔案檔案變化發送簡訊軟體 ▲▼ 目前時間抓取並顯示 呼叫BAT並等待結束 利用BAT抓取目錄下的檔案列表 依照檔案清單,依序讀取檔案內容 將字串內容透過SOCKET傳送給發簡訊硬體 957_OpenCV算法精解:基於Python與C++ ▲▼ 目錄 1 OpenCV入門 1.1 初識OpenCV 1.1.1 OpenCV的模塊簡介 1.1.2 OpenCV 2.4.13與3.2版本的區別 1.2 部署OpenCV 1.2.1 在Visual Studio 2015中 配置OpenCV 1.2.2 OpenCV 2.X C++ API的第一個示例 1.2.3 OpenCV 3.X C++ API的第一個示例 1.2.4 在Anaconda 2中配置OpenCV 1.2.5 OpenCV 2.X Python API的第一個示例 1.2.6 OpenCV 3.X Python API的第一個示例 2 圖像數字化 2.1 認識Numpy中的ndarray 2.1.1 構造ndarray對象 2.1.2 訪問ndarray中的值 2.2 認識OpenCV中的Mat類 2.2.1 初識Mat 2.2.2 構造單通道Mat對象 2.2.3 獲得單通道Mat的基本信息 2.2.4 訪問單通道Mat對象中的值 2.2.5 向量類Vec 2.2.6 構造多通道Mat對象 2.2.7 訪問多通道Mat對象中的值 2.2.8 獲得Mat中某一區域的值 2.3 矩陣的運算 2.3.1 加法運算 2.3.2 減法運算 2.3.3 點乘運算 2.3.4 點除運算 2.3.5 乘法運算 2.3.6 其他運算 2.4 灰度圖像數字化 2.4.1 概述 2.4.2 將灰度圖像轉換為Mat 2.4.3 將灰度圖轉換為ndarray 2.5 彩色圖像數字化 2.5.1 將RGB彩色圖像轉換為多通道Mat 2.5.2 將RGB彩色圖轉換為三維的ndarray 2.6 參考文獻 3 幾何變換 3.1 仿射變換 3.1.1 平移 3.1.2 放大和縮小 3.1.3 旋轉 3.1.4 計算仿射矩陣 3.1.5 插值算法 3.1.6 Python實現 3.1.7 C++實現 3.1.8 旋轉函數rotate(OpenCV3.X新特性) 3.2 投影變換 3.2.1 原理詳解 3.2.2 Python實現 3.2.3 C++實現 3.3 極坐標變換 3.3.1 原理詳解 3.3.2 Python實現 3.3.3 C++實現 3.3.4 線性極坐標函數 (OpenCV 3.X新特性) 3.3.5 對數極坐標函數logPolar(OpenCV 3.X新特性) 3.4 參考文獻 4 對比度增強 4.1 灰度直方圖 4.1.1 什麼是灰度直方圖 4.1.2 Python及C++實現 4.2 線性變換 4.2.1 原理詳解 4.2.2 Python實現 4.2.3 C++實現 4.3 直方圖正規化 4.3.1 原理詳解 4.3.2 Python實現 4.3.3 C++實現 4.3.4 正規化函數normalize 4.4 伽馬變換 4.4.1 原理詳解 4.4.2 Python實現 4.4.3 C++實現 4.5 全局直方圖均衡化 4.5.1 原理詳解 4.5.2 Python實現 4.5.3 C++實現 4.6 限制對比度的自適應直方圖均衡化 4.6.1 原理詳解 4.6.2 代碼實現 4.7 參考文獻 5 圖像平滑 5.1 二維離散卷積 5.1.1 卷積定義及矩陣形式 5.1.2 可分離卷積核 5.1.3 離散卷積的性質 5.2 高斯平滑 5.2.1 高斯卷積核的構建及分離性 5.2.2 高斯卷積核的二項式近似 5.2.3 Python實現 5.2.4 C++實現 5.3 均值平滑 5.3.1 均值卷積核的構建及分離性 5.3.2 快速均值平滑 5.3.3 Python實現 5.3.4 C++實現 5.4 中值平滑 5.4.1 原理詳解 5.4.2 Python實現 5.4.3 C++實現 5.5 雙邊濾波 5.5.1 原理詳解 5.5.2 Python實現 5.5.3 C++實現 5.6 聯合雙邊濾波 5.6.1 原理詳解 5.6.2 Python實現 5.6.3 C++實現 5.7 導向濾波 5.7.1 原理詳解 5.7.2 Python實現 5.7.3 快速導向濾波 5.7.4 C++實現 5.8 參考文獻 6 閾值分割 6.1 方法概述 6.1.1 全局閾值分割 6.1.2 閾值函數threshold(OpenCV3.X新特性) 6.1.3 局部閾值分割 6.2 直方圖技術法 6.2.1 原理詳解 6.2.2 Python實現 6.2.3 C++實現 6.3 熵算法 6.3.1 原理詳解 6.3.2 代碼實現 6.4 Otsu閾值處理 6.4.1 原理詳解 6.4.2 Python實現 6.4.3 C++實現 6.5 自適應閾值 6.5.1 原理詳解 6.5.2 Python實現 6.5.3 C++實現 6.6 二值圖的邏輯運算 6.6.1 “與”和“或”運算 6.6.2 Python實現 6.6.3 C++實現 6.7 參考文獻 7 形態學處理 7.1 腐蝕 7.1.1 原理詳解 7.1.2 實現代碼及效果 7.2 膨脹 7.2.1 原理詳解 7.2.2 Python實現 7.2.3 C++實現 7.3 開運算和閉運算 7.3.1 原理詳解 7.3.2 Python實現 7.4 其他形態學處理操作 7.4.1 頂帽變換和底帽變換 7.4.2 形態學梯度 7.4.3 C++實現 8 邊緣檢測 8.1 Roberts算子 8.1.1 原理詳解 8.1.2 Python實現 8.1.3 C++實現 8.2 Prewitt邊緣檢測 8.2.1 Prewitt算子及分離性 8.2.2 Python實現 8.2.3 C++實現 8.3 Sobel邊緣檢測 8.3.1 Sobel算子及分離性 8.3.2 構建高階的Sobel算子 8.3.3 Python實現 8.3.4 C++實現 8.4 Scharr算子 8.4.1 原理詳解 8.4.2 Python實現 8.4.3 C++實現 8.5 Kirsch算子和Robinson算子 8.5.1 原理詳解 8.5.2 代碼實現及效果 8.6 Canny邊緣檢測 8.6.1 原理詳解 8.6.2 Python實現 8.6.3 C++實現 8.7 Laplacian算子 8.7.1 原理詳解 8.7.2 Python實現 8.7.3 C++實現 8.8 高斯拉普拉斯(LoG)邊緣檢測 8.8.1 原理詳解 8.8.2 Python實現 8.8.3 C++實現 8.9 高斯差分(DoG)邊緣檢測 8.9.1 高斯拉普拉斯與高斯差分的關係 8.9.2 Python實現 8.9.3 C++實現 8.10 Marr-Hildreth邊緣檢測 8.10.1 算法步驟詳解 8.10.2 Pyton實現 8.10.3 C++實現 8.11 參考文獻 9 幾何形狀的檢測和擬合 9.1 點集的最小外包 9.1.1 最小外包旋轉矩形 9.1.2 旋轉矩形的4個頂點(OpenCV 3.X新特性) 9.1.3 最小外包圓 9.1.4 最小外包直立矩形(OpenCV 3.X新特性) 9.1.5 最小凸包 9.1.6 最小外包三角形( OpenCV 3.X新特性) 9.2 霍夫直線檢測 9.2.1 原理詳解 9.2.2 Python實現 9.2.3 C++實現 9.3 霍夫圓檢測 9.3.1 標準霍夫圓檢測 9.3.2 Python實現 9.3.3 基於梯度的霍夫圓檢測 9.3.4 基於梯度的霍夫圓檢測函數HoughCircles 9.4 輪廓 9.4.1 查找、繪製輪廓 9.4.2 外包、擬合輪廓 9.4.3 輪廓的周長和面積 9.4.4 點和輪廓的位置關係 9.4.5 輪廓的凸包缺陷 9.5 參考文獻 10 傅裡葉變換 10.1 二維離散的傅裡葉(逆)變換 10.1.1 數學理解篇 10.1.2 快速傅裡葉變換 10.1.3 C++實現 10.1.4 Python實現 10.2 傅裡葉幅度譜與相位譜 10.2.1 基礎知識 10.2.2 Python實現 10.2.3 C++實現 10.3 譜殘差顯著性檢測 10.3.1 原理詳解 10.3.2 Python實現 10.3.3 C++實現 10.4 卷積與傅裡葉變換的關係 10.4.1 卷積定理 10.4.2 Python實現 10.5 通過快速傅裡葉變換計算卷積 10.5.1 步驟詳解 10.5.2 Python實現 10.5.3 C++實現 10.6 參考文獻 11 頻率域濾波 11.1 概述及原理詳解 11.2 低通濾波和高通濾波 11.2.1 三種常用的低通濾波器 11.2.2 低通濾波的C++實現 11.2.3 低通濾波的Python實現 11.2.4 三種常用的高通濾波器 11.3 帶通和帶阻濾波 11.3.1 三種常用的帶通濾波器 11.3.2 三種常用的帶阻濾波器 11.4 自定義濾波器 11.4.1 原理詳解 11.4.2 C++實現 11.5 同態濾波 11.5.1 原理詳解 11.5.2 Python實現 11.6 參考文獻 12 色彩空間 12.1 常見的色彩空間 12.1.1 RGB色彩空間 12.1.2 HSV色彩空間 12.1.3 HLS色彩空間 12.2 調整彩色圖像的飽和度和亮度 12.2.1 Python實現 12.2.2 C++實現 958_OpenCV計算機視覺編程攻略 第3版 ▲▼ 第 1章 圖像編程入門 1 1.1 簡介 1 1.2 安裝OpenCV庫 1 1.2.1 準備工作 1 1.2.2 如何實現 2 1.2.3 實現原理 4 1.2.4 擴展閱讀 5 1.2.5 參閱 6 1.3 裝載、顯示和存儲圖像 6 1.3.1 準備工作 6 1.3.2 如何實現 6 1.3.3 實現原理 8 1.3.4 擴展閱讀 9 1.3.5 參閱 11 1.4 深入了解cv::Mat 11 1.4.1 如何實現 11 1.4.2 實現原理 13 1.4.3 擴展閱讀 16 1.4.4 參閱 17 1.5 定義感興趣區域 17 1.5.1 準備工作 17 1.5.2 如何實現 17 1.5.3 實現原理 18 1.5.4 擴展閱讀 18 1.5.5 參閱 19 第 2 章 操作像素 20 2.1 簡介 20 2.2 訪問像素值 21 2.2.1 準備工作 21 2.2.2 如何實現 21 2.2.3 實現原理 23 2.2.4 擴展閱讀 24 2.2.5 參閱 24 2.3 用指針掃描圖像 24 2.3.1 準備工作 25 2.3.2 如何實現 25 2.3.3 實現原理 26 2.3.4 擴展閱讀 27 2.3.5 參閱 31 2.4 用迭代器掃描圖像 31 2.4.1 準備工作 31 2.4.2 如何實現 31 2.4.3 實現原理 32 2.4.4 擴展閱讀 33 2.4.5 參閱 33 2.5 編寫高效的圖像掃描循環 33 2.5.1 如何實現 34 2.5.2 實現原理 34 2.5.3 擴展閱讀 36 2.5.4 參閱 36 2.6 掃描圖像並訪問相鄰像素 36 2.6.1 準備工作 36 2.6.2 如何實現 36 2.6.3 實現原理 38 2.6.4 擴展閱讀 38 2.6.5 參閱 39 2.7 實現簡單的圖像運算 39 2.7.1 準備工作 39 2.7.2 如何實現 40 2.7.3 實現原理 40 2.7.4 擴展閱讀 41 2.8 圖像重映射 42 2.8.1 如何實現 42 2.8.2 實現原理 43 2.8.3 參閱 44 第3 章 處理圖像的顏色 45 3.1 簡介 45 3.2 用策略設計模式比較顏色 45 3.2.1 如何實現 46 3.2.2 實現原理 47 3.2.3 擴展閱讀 50 3.2.4 參閱 53 3.3 用GrabCut 算法分割圖像 53 3.3.1 如何實現 54 3.3.2 實現原理 56 3.3.3 參閱 56 3.4 轉換顏色表示法 56 3.4.1 如何實現 57 3.4.2 實現原理 58 3.4.3 參閱 59 3.5 用色調、飽和度和亮度表示顏色 59 3.5.1 如何實現 59 3.5.2 實現原理 61 3.5.3 拓展閱讀 64 3.5.4 參閱 66 第4 章 用直方圖統計像素 67 4.1 簡介 67 4.2 計算圖像直方圖 67 4.2.1 準備工作 68 4.2.2 如何實現 68 4.2.3 實現原理 72 4.2.4 擴展閱讀 72 4.2.5 參閱 74 4.3 利用查找表修改圖像外觀 74 4.3.1 如何實現 74 4.3.2 實現原理 75 4.3.3 擴展閱讀 76 4.3.4 參閱 78 4.4 直方圖均衡化 78 4.4.1 如何實現 78 4.4.2 實現原理 79 4.5 反向投影直方圖檢測特定圖像內容 79 4.5.1 如何實現 80 4.5.2 實現原理 81 4.5.3 擴展閱讀 82 4.5.4 參閱 84 4.6 用均值平移算法查找目標 85 4.6.1 如何實現 85 4.6.2 實現原理 87 4.6.3 參閱 88 4.7 比較直方圖搜索相似圖像 88 4.7.1 如何實現 88 4.7.2 實現原理 90 4.7.3 參閱 90 4.8 用積分圖像統計像素 91 4.8.1 如何實現 91 4.8.2 實現原理 92 4.8.3 擴展閱讀 93 4.8.4 參閱 99 第5 章 用形態學運算變換圖像 100 5.1 簡介 100 5.2 用形態學濾波器腐蝕和膨脹圖像 100 5.2.1 準備工作 101 5.2.2 如何實現 101 5.2.3 實現原理 102 5.2.4 擴展閱讀 103 5.2.5 參閱 104 5.3 用形態學濾波器開啟和閉合圖像 104 5.3.1 如何實現 104 5.3.2 實現原理 105 5.3.3 參閱 106 5.4 在灰度圖像中應用形態學運算 106 5.4.1 如何實現 106 5.4.2 實現原理 107 5.4.3 參閱 108 5.5 用分水嶺算法實現圖像分割 108 5.5.1 如何實現 109 5.5.2 實現原理 111 5.5.3 擴展閱讀 112 5.5.4 參閱 114 5.6 用MSER 算法提取特徵區域 114 5.6.1 如何實現 114 5.6.2 實現原理 116 5.6.3 參閱 118 第6 章 圖像濾波 119 6.1 簡介 119 6.2 低通濾波器 120 6.2.1 如何實現 120 6.2.2 實現原理 121 6.2.3 參閱 123 6.3 用濾波器進行縮減像素采樣 124 6.3.1 如何實現 124 6.3.2 實現原理 125 6.3.3 擴展閱讀 126 6.3.4 參閱 127 6.4 中值濾波器 128 6.4.1 如何實現 128 6.4.2 實現原理 129 6.5 用定向濾波器檢測邊緣 129 6.5.1 如何實現 130 6.5.2 實現原理 132 6.5.3 擴展閱讀 135 6.5.4 參閱 136 6.6 計算拉普拉斯算子 136 6.6.1 如何實現 137 6.6.2 實現原理 138 6.6.3 擴展閱讀 141 6.6.4 參閱 142 第7 章 提取直線、輪廓和區域 143 7.1 簡介 143 7.2 用Canny 算子檢測圖像輪廓 143 7.2.1 如何實現 143 7.2.2 實現原理 145 7.2.3 參閱 146 7.3 用霍夫變換檢測直線 146 7.3.1 準備工作 146 7.3.2 如何實現 147 7.3.3 實現原理 151 7.3.4 擴展閱讀 153 7.3.5 參閱 155 7.4 點集的直線擬合 155 7.4.1 如何實現 155 7.4.2 實現原理 157 7.4.3 擴展閱讀 158 7.5 提取連續區域 158 7.5.1 如何實現 159 7.5.2 實現原理 160 7.5.3 擴展閱讀 161 7.6 計算區域的形狀描述子 161 7.6.1 如何實現 162 7.6.2 實現原理 163 7.6.3 擴展閱讀 164 第8 章 檢測興趣點 166 8.1 簡介 166 8.2 檢測圖像中的角點 166 8.2.1 如何實現 167 8.2.2 實現原理 171 8.2.3 擴展閱讀 172 8.2.4 參閱 174 8.3 快速檢測特徵 174 8.3.1 如何實現 174 8.3.2 實現原理 175 8.3.3 擴展閱讀 176 8.3.4 參閱 178 8.4 尺度不變特徵的檢測 178 8.4.1 如何實現 179 8.4.2 實現原理 180 8.4.3 擴展閱讀 181 8.4.4 參閱 183 8.5 多尺度FAST 特徵的檢測 183 8.5.1 如何實現 183 8.5.2 實現原理 184 8.5.3 擴展閱讀 185 8.5.4 參閱 186 第9 章 描述和匹配興趣點 187 9.1 簡介 187 9.2 局部模板匹配 187 9.2.1 如何實現 188 9.2.2 實現原理 190 9.2.3 擴展閱讀 191 9.2.4 參閱 192 9.3 描述並匹配局部強度值模式 192 9.3.1 如何實現 193 9.3.2 實現原理 195 9.3.3 擴展閱讀 196 9.3.4 參閱 199 9.4 用二值描述子匹配關鍵點 199 9.4.1 如何實現 199 9.4.2 實現原理 200 9.4.3 擴展閱讀 201 9.4.4 參閱 202 第 10 章 估算圖像之間的投影關係 203 10.1 簡介 203 10.2 計算圖像對的基礎矩陣 205 10.2.1 準備工作 205 10.2.2 如何實現 206 10.2.3 實現原理 208 10.2.4 參閱 209 10.3 用RANSAC(隨機抽樣一致性)算法匹配圖像 209 10.3.1 如何實現 209 10.3.2 實現原理 212 10.3.3 擴展閱讀 213 10.4 計算兩幅圖像之間的單應矩陣 214 10.4.1 準備工作 214 10.4.2 如何實現 215 10.4.3 實現原理 217 10.4.4 擴展閱讀 218 10.4.5 參閱 219 10.5 檢測圖像中的平面目標 219 10.5.1 如何實現 219 10.5.2 實現原理 221 10.5.3 參閱 224 第 11 章 三維重建 225 11.1 簡介 225 11.2 相機標定 226 11.2.1 如何實現 227 11.2.2 實現原理 230 11.2.3 擴展閱讀 232 11.2.4 參閱 233 11.3 相機姿態還原 233 11.3.1 如何實現 233 11.3.2 實現原理 235 11.3.3 擴展閱讀 236 11.3.4 參閱 238 11.4 用標定相機實現三維重建 238 11.4.1 如何實現 238 11.4.2 實現原理 241 11.4.3 擴展閱讀 243 11.4.4 參閱 244 11.5 計算立體圖像的深度 244 11.5.1 準備工作 244 11.5.2 如何實現 245 11.5.3 實現原理 247 11.5.4 參閱 247 第 12 章 處理視頻序列 248 12.1 簡介 248 12.2 讀取視頻序列 248 12.2.1 如何實現 248 12.2.2 實現原理 250 12.2.3 擴展閱讀 251 12.2.4 參閱 251 12.3 處理視頻幀 251 12.3.1 如何實現 251 12.3.2 實現原理 252 12.3.3 擴展閱讀 256 12.3.4 參閱 258 12.4 寫入視頻幀 258 12.4.1 如何實現 259 12.4.2 實現原理 259 12.4.3 擴展閱讀 262 12.4.4 參閱 263 12.5 提取視頻中的前景物體 263 12.5.1 如何實現 264 12.5.2 實現原理 266 12.5.3 擴展閱讀 266 12.5.4 參閱 268 第 13 章 跟蹤運動目標 269 13.1 簡介 269 13.2 跟蹤視頻中的特徵點 269 13.2.1 如何實現 269 13.2.2 實現原理 274 13.2.3 參閱 274 13.3 估算光流 275 13.3.1 準備工作 275 13.3.2 如何實現 276 13.3.3 實現原理 278 13.3.4 參閱 279 13.4 跟蹤視頻中的物體 279 13.4.1 如何實現 279 13.4.2 實現原理 282 13.4.3 參閱 284 第 14 章 實用案例 285 14.1 簡介 285 14.2 人臉識別 286 14.2.1 如何實現 286 14.2.2 實現原理 288 14.2.3 參閱 290 14.3 人臉定位 291 14.3.1 準備工作 291 14.3.2 如何實現 292 14.3.3 實現原理 295 14.3.4 擴展閱讀 297 14.3.5 參閱 298 14.4 行人檢測 298 14.4.1 準備工作 298 14.4.2 如何實現 299 14.4.3 實現原理 302 14.4.4 擴展閱讀 304 14.4.5 參閱 308 959_機器學習經典算法剖析 基於OpenCV ▲▼ 第 1章 正態貝葉斯分類器 1 1.1 原理分析 1 1.2 源碼解析 8 1.3 應用實例 13 第 2章 K近鄰算法 15 2.1 原理分析 15 2.2 源碼解析 16 2.3 應用實例 22 第3章 支持向量機 25 3.1 原理分析 25 3.2 源碼解析 50 3.3 應用實例 71 第4章 決策樹 73 4.1 原理分析 73 4.2 源碼解析 81 4.3 應用實例 117 第5章 AdaBoost 120 5.1 原理分析 120 5.2 源碼解析 123 5.3 應用實例 140 第6章 梯度提升樹 142 6.1 原理分析 142 6.2 源碼解析 147 6.3 應用實例 158 第7章 隨機森林 161 7.1 原理分析 161 7.2 源碼解析 163 7.3 應用實例 171 第8章 極端隨機樹 173 8.1 原理分析 173 8.2 源碼解析 173 8.3 應用實例 187 第9章 期望極大值 189 9.1 原理分析 189 9.2 源碼解析 202 9.3 應用實例 212 第 10章 神經網絡 214 10.1 原理分析 214 10.2 源碼解析 220 10.3 應用實例 241 附錄A Win7系統下OpenCV 2.4.9與 Visual Studio 2012 編譯環境的配置 244 附錄B Win7系統下QT 5.3.1與 OpenCV 2.4.9 編譯環境的 配置 248 附錄C 級聯分類器 252 參考文獻 287 960_OpenCV2 計算機視覺編程手冊 ▲▼ 目錄: 第 1 章接觸圖像 1.1 引 言 …………………………………1 1.2 安裝OpenCV庫…………………………1 1.3 使用MS VisualC++創建OpenCV工程…4 1.4 使用Qt創建OpenCV項目………………12 1.5 載入、顯示及保存圖像………………18 1.6 使用Qt創建GUI應用…………………22 第 2 章操作像素 2.1 引 言…………………………………29 2.2 存取像素值……………………………30 2.3 使用指針遍歷圖像……………………33 2.4 使用迭代器遍歷圖像…………………40 2.5 編寫高效的圖像遍歷循環……………43 2.6 遍歷圖像和鄰域操作…………………46 2.7 進行簡單的圖像算術…………………50 2.8 定義感興趣區域………………………53 第 3 章基于類的圖像處理 3.1 引 言…………………………………57 3.2 在算法設計中使用策略(Strategy)模式………57 3.3 使用控制器(Controller)實現模塊間通信……63 3.4 使用單件(Singleton)設計模式…67 3.5使用模型-視圖-控制器(Model-View-Controller)架構設計應用程序…………70 3.6 顏色空間轉換………………………73 第 4 章使用直方圖統計像素 4.1 引 言…………………………………77 4.2 計算圖像的直方圖…………………77 4.3 使用查找表修改圖像外觀…………84 4.4 直方圖均衡化………………………88 4.5 反投影直方圖以檢測特定的圖像內容……………89 4.6 使用均值漂移(Mean Shift)算法查找物體……95 4.7 通過比較直方圖檢索相似圖片……99 第 5 章基于形態學運算的圖像變換 5.1 引言…………………………………103 5.2 使用形態學濾波對圖像進行腐蝕、膨脹運算……103 5.3 使用形態學濾波對圖像進行開閉運算……………107 5.4 使用形態學濾波對圖像進行邊緣及角點檢測……110 5.5 使用分水嶺算法對圖像進行分割…116 5.6 使用GrabCut算法提取前景物體…121 第 6 章圖像濾波 6.1 引 言………………………………125 6.2 使用低通濾波器……………………126 6.3 使用中值濾波器……………………130 6.4 使用方向濾波器檢測邊緣…………132 6.5 計算圖像的拉普拉斯變換…………138 第 7 章提取直線、輪廓及連通區域 7.1 引 言………………………………143 7.2 使用Canny算子檢測輪廓…………143 7.3 使用霍夫變換檢測直線………… 146 7.4 用直線擬合一組點………………156 7.5 提取連通區域的輪廓……………160 7.6 計算連通區域的形狀描述符……164 第 8 章檢測并匹配興趣點 8.1 引 言………………………………167 8.2 檢測Harris角點…………………167 8.3 檢測FAST特征……………………177 8.4 檢測尺度不變的SURF特征………180 8.5 描述SURF特征……………………185 第 9 章估算圖像間的投影關系 9.1 引 言………………………………189 9.2 相機標定…………………………191 9.3 計算一對圖像的基礎矩陣………198 9.4 使用隨機采樣一致算法(RANSAC)進行圖像匹配………………………………202 9.5 計算兩幅圖之間的單應矩陣……211 第 10 章處理視頻序列 10.1 引 言……………………………215 10.2 讀取視頻序列……………………215 10.3 處理視頻幀………………………219 10.4 寫入視頻序列……………………228 10.5 跟蹤視頻中的特征點……………233 10.6 提取視頻中的前景物休…………239 961_深度學習[(卷積神經網路-Convolutional Neural Networks)] ▲▼ 預備課程 輔助資料 自然語言處理與深度學習通過C語言模擬 深度學習:Java語言實現 introduction to neural networks with java Java機器學習 NN_neuroph 自己動手寫神經網絡 神經網絡算法與實現基於Java語言 神經網絡與深度學習 周志华-机器学习[西瓜書機器學習] Neural_Network_Programming_with_Java_SecondEdition[神經網絡編程實戰Java語言實現] 人工智慧入門與實戰 使用Raspberry Pi和Python演練 機器學習:實用技術指南[JAVA] 揭秘深度強化學習(人工智慧機器學習技術叢書)[C] 962_神經網絡模式識別及其實現 ▲▼ 963_Visual C ++數字圖像模式識別技術及工程實踐 ▲▼ 964_OpenCV圖像處理編程實例 ▲▼ 目錄: Part I 基礎篇 OpenCV開發基礎 第1章 初識OpenCV 1.1 OpenCV初識 1.1.1 OpenCV簡介 1.1.2 OpenCV組件及架構 1.1.3 OpenCV資源 1.2 VS2012安裝OpenCV2.4.x 1.3 VS2013安裝OpenCV3.0 1.4 Sublime下配置OpenCV 1.5 小結 第2章 圖像及視頻基本操作 2.1 圖像初級操作 2.1.1 Mat類 2.1.2 Mat基本操作 2.1.3 Mat類型轉換 2.1.4 圖像讀取顯示保存 2.1.5 圖像存儲 2.2 圖像幾何變換 2.2.1 坐標映射 2.2.2 平移 2.2.3 縮放 2.2.4 旋轉 2.2.5 仿射變換 2.3 視頻操作 2.3.1 VideoCapture類 2.3.2 視頻寫操作 2.3.3 視頻質量評價 2.4 圖像基礎應用操作 2.4.1 界面事件 2.4.2 區域提取 2.4.3 圖像元素遍歷——反色 2.4.4 單窗口顯示多幅圖像 2.4.5 圖像顏色空間轉換 2.4.6 圖像批量讀取——規則 2.4.7 圖像批量讀取——無規則 2.5 小結 Part II 進階篇 圖像處理技術 第3章 進階篇——圖像灰度變換技術 3.1 閾值化處理 3.1.1 OTSU閾值化 3.1.2 固定閾值化 3.1.3 自適應閾值化 3.1.4 雙閾值化 3.1.5 半閾值化 3.2 直方圖處理 3.2.1 灰度直方圖 3.2.2 H-S直方圖 3.2.3 BGR直方圖 3.2.4 自定義直方圖 3.2.5 灰度直方圖均衡 3.2.6 彩色直方圖均衡 3.2.7 直方圖變換——查找 3.2.8 直方圖變換——累計 3.2.9 直方圖匹配 3.2.10 直方圖對比 3.2.11 直方圖的反向投影 3.3 距離變換 3.3.1 距離 3.3.2 鄰接性 3.3.3 區域 3.3.4 距離變換——掃描 3.3.5 距離變換——distanceTransform 3.4 Gamma校正 3.5 其他常見的灰度變換技術 3.5.1 線性變換 3.5.2 對數變換 3.5.3 對比度拉伸 3.5.4 灰度級分層 3.5.5 灰度比特平面 3.6 實例應用 3.6.1 最大熵閾值分割 3.6.2 投影峰谷查找 3.7 小結 第4章 進階篇——圖像平滑技術 4.1 圖像采樣 4.1.1 最近鄰插值 4.1.2 雙線性插值 4.1.3 插值操作性能對比 4.1.4 圖像金字塔 4.2 傅里葉變換 4.2.1 圖像掩碼操作 4.2.2 離散傅里葉 4.2.3 圖像卷積 4.3 圖像噪聲 4.3.1 椒鹽噪聲 4.3.2 高斯噪聲 4.4 空間平滑 4.4.1 盒濾波 4.4.2 均值濾波 4.4.3 中值濾波 4.4.4 高斯濾波 4.4.5 雙邊濾波 4.5 實例應用 4.5.1 導向濾波 4.5.2 圖像污點修復 4.5.3 旋轉文本圖像矯正 4.6 小結 第5章 進階篇——邊緣檢測技術 5.1 邊緣檢測基礎 5.1.1 邊緣檢測概念 5.1.2 梯度算子 5.1.3 一階微分算子 5.1.4 二階微分算子 5.1.5 圖像差分運算 5.1.6 非極大值抑制 5.2 基本邊緣檢測算子——Sobel 5.2.1 非極大值抑制Sobel檢測 5.2.2 圖像直接卷積實現Sobel 5.2.3 圖像卷積下非極大值抑制Sobel 5.2.4 Sobel庫函數實現 5.3 基本邊緣檢測算子——Laplace 5.4 基本邊緣檢測算子——Roberts 5.5 基本邊緣檢測算子——Prewitt 5.6 改進邊緣檢測算子——Canny 5.6.1 Canny算子 5.6.2 Canny原理及實現 5.6.3 Canny庫函數實現 5.7 改進邊緣檢測算子——Marr-Hildreth 5.8 幾何檢測 5.8.1 霍夫變換 5.8.2 線檢測技術 5.8.3 LSD快速直線檢測 5.8.4 圓檢測技術 5.9 形狀檢測 5.9.1 輪廓檢測 5.9.2 凸包檢測 5.9.3 輪廓邊界框 5.9.4 輪廓矩 5.9.5 點多邊形測試 5.10 角點檢測 5.10.1 moravec角點 5.10.2 harris角點 5.10.3 Shi-Tomasi角點 5.11 實例應用 5.11.1 顏色圓檢測 5.11.2 車牌區域檢測 5.12 小結 第6章 進階篇——形態學技術 6.1 腐蝕膨脹操作 6.2 開閉運算操作 6.3 形態學梯度 6.4 形態學Top-Hat 6.5 實例應用 6.5.1 形態學濾波角點提取 6.5.2 車牌目標提取 6.6 小結 Part III 高級篇 圖像應用技術 第7章 高級篇——圖像分割技術 7.1 分水嶺分割 7.1.1 分水嶺的特征 7.1.2 實現分水嶺分割 7.1.3 分水嶺分割合并 7.2 FloodFill分割 7.3 均值漂移MeanShift 7.4 圖割Grabcut 7.5 實例實例 7.5.1 奇異區域檢測 7.5.2 膚色檢測 7.6 小結 第8章 高級篇——特征分析 8.1 尺度空間 8.1.1 尺度與旋轉不變性 8.1.2 特征點尺度變換 8.2 特征描述子 8.2.1 SIFT特征 8.2.2 SURF特征 8.2.3 ORB特征 8.3 方向梯度直方圖HOG 8.3.1 HOG原理 8.3.2 HOG特征提取步驟 8.3.3 HOGDescriptor特征描述類 8.3.4 HOG特征描述實現 8.4 局部二值模式LBP 8.4.1 經典LBP 8.4.2 圓形LBP 8.5 Haar特征描述 8.5.1 Haar原理 8.5.2 Haar特征提取 8.6 應用實例 8.6.1 最近鄰特征點目標提取 8.6.2 最大極值穩定區域匹配MSER 8.6.3 字符特征提取 8.6.4 車牌字符SVM訓練 8.7 小結 第9章 高級篇——復雜視頻處理技術 9.1 視頻穩像技術 9.2 圖像拼接 9.2.1 拼接原理及過程 9.2.2 圖像拼接實現 9.3 高動態范圍圖像HDR 9.3.1 HDR合成技術 9.3.2 HDR合成原理 9.3.3 OpenCV實現 9.4 背景建模 9.4.1 背景差分 9.4.2 混合高斯背景建模 9.4.3 混合高斯背景建模實現 9.4.4 混合模型MOG2成員參數設定 9.4.5 KNN模型背景建模實現 9.4.6 GMG模型背景建模實現 9.5 級聯分類器——人臉檢測 9.5.1 級聯分類器 9.5.2 CascadeClassifier類 9.6 應用實例 9.6.1 運動目標提取 9.6.2 TLD單目標跟蹤 9.6.3 人眼檢測與跟蹤 9.7 小結 附錄A 1——代碼清單 2——CMake編譯OpenCV3.1源碼 3——OpenCV3.1 Extra擴展庫 參考文獻 965_C語言實例解析精粹 ▲▼ 966_C语言黑客编程系列12课C语言黑客编程系列12课[ VC API 呼叫 簡易後門實作 ] ▲▼ 967_Windows_linux c++ usb programming ▲▼ 968_MFC_OutlookBar ▲▼ 969_SQLite 加密 ▲▼ 970_USB應用開發實例詳解 ▲▼ 971_SQLITE_CMD ▲▼ SQLITE.exe 972_K-means ▲▼ 00_理論教學影片 01_純C程式 973_Fuzzy c-Means ▲▼ 00_理論教學影片 01_純C程式 974_命令列中執行完整WEB動作包含javascript(phantomjs) ▲▼ 975_VC相依套件(不選MFC靜態聯結) ▲▼ 976_Visual C++開發GIS系統(陳建春) ▲▼ 977_Visual C++開發GIS系統—開發實例剖析(附 光碟) ▲▼ 978_SQLite GUI TOOL ▲▼ SQLite2CSV tool sqliteadmin 979_算法設計、分析與實現:C、C++和Java ▲▼ 第1章 集腋成裘——漸增型算法 1 1.1 算法設計與分析 1 1.2 插入排序算法 4 1.2.1 算法描述與分析 4 1.2.2 程序實現 6 1.2.3 應用——贏得舞伴 32 1.3 兩個有序序列的合并算法 33 1.3.1 算法描述與分析 33 1.3.2 程序實現 36 1.4 序列的劃分 47 1.4.1 算法描述與分析 47 1.4.2 程序實現 49 1.5 小結 55 第2章 化整為零——分治算法 56 2.1 Hanoi塔問題與遞歸算法 56 2.1.1 算法的描述與分析 56 2.1.2 程序實現 59 2.1.3 應用——新Hanoi塔游戲 63 2.2 歸并排序算法 66 2.2.1 算法描述與分析 66 2.2.2 程序實現 67 2.2.3 應用——讓舞伴更開心 73 2.3 快速排序算法 74 2.3.1 算法描述與分析 74 2.3.2 程序實現 77 2.4 堆的實現 84 2.4.1 堆的概念及其創建 84 2.4.2 程序實現 89 2.5 堆排序 95 2.5.1 算法描述與分析 95 2.5.2 程序實現 96 2.6 基于二叉堆的優先隊列 101 2.6.1 算法描述與分析 101 2.6.2 程序實現 102 2.7 關于排序算法 114 2.7.1 比較型排序算法的時間復雜度 114 2.7.2 C/C++/Java提供的排序函數(方法) 116 2.7.3 應用——環法自行車賽 117 2.8 小結 118 第3章 記表備查——動態規劃算法 120 3.1 矩陣鏈乘法 121 3.1.1 算法描述與分析 121 3.1.2 程序實現 125 3.1.3 應用——牛牛玩牌 131 3.2 最長公共子序列 133 3.2.1 算法描述與分析 133 3.2.2 程序實現 136 3.2.3 算法的應用 143 3.3 0-1背包問題 147 3.3.1 算法描述與分析 147 3.3.2 程序實現 149 3.3.3 算法的應用 153 3.4 帶權有向圖中任意兩點間的最短路徑 156 3.4.1 算法描述與分析 156 3.4.2 程序實現 160 3.4.3 應用——牛牛聚會 166 3.5 小結 168 第4章 高效的選擇——貪婪算法 169 4.1 活動選擇問題 169 4.1.1 算法描述與分析 169 4.1.2 程序實現 172 4.1.3 貪婪算法與動態規劃 177 4.1.4 應用——海岸雷達 179 4.2 Huffman編碼 181 4.2.1 算法描述與分析 181 4.2.2 程序實現 185 4.2.3 應用——R-叉Huffman樹 195 4.3 最小生成樹 199 4.3.1 算法描述與分析 199 4.3.2 程序實現 202 4.3.3 應用——北方通信網 212 4.4 單源最短路徑問題 214 4.4.1 算法描述與分析 214 4.4.2 程序實現 217 4.4.3 應用——西氣東送 224 4.5 小結 227 第5章 艱苦卓絕——回溯算法 228 5.1 組合問題與回溯算法 228 5.1.1 3-著色問題 228 5.1.2 n-皇后問題 231 5.1.3 Hamilton回路問題 234 5.1.4 子集和問題 236 5.2 解決組合問題的回溯算法框架 237 5.2.1 算法框架 237 5.2.2 程序實現 241 5.3 排列樹和子集樹 253 5.3.1 子集樹問題 253 5.3.2 排列樹問題 258 5.4 用回溯算法解決組合優化問題 261 5.4.1 算法框架 261 5.4.2 旅行商問題 263 5.4.3 應用 268 5.5 P、NP和NP-完全問題 276 5.6 小結 278 第6章 圖的搜索算法 280 6.1 廣度優先搜索 282 6.1.1 算法描述與分析 282 6.1.2 程序實現 285 6.1.3 應用——攻城掠地 293 6.2 深度優先搜索 296 6.2.1 算法描述與分析 296 6.2.2 程序實現 298 6.2.3 有向無圈圖的拓撲排序 301 6.2.4 應用——全排序 309 6.3 有向圖的強連通分支 311 6.3.1 算法描述與分析 311 6.3.2 程序實現 315 6.3.3 應用——親情號 320 6.4 無向圖的雙連通分支 323 6.4.1 算法描述與分析 323 6.4.2 程序實現 326 6.4.3 應用——雌雄大盜 329 6.5 流網絡與最大流問題 331 6.5.1 算法描述與分析 331 6.5.2 程序實現 342 6.5.3 應用 344 6.6 小結 347 第7章 集組合優化問題之大成——線性規劃 348 7.1 標準形式與松弛形式 351 7.1.1 線性規劃的標準形式 351 7.1.2 線性規劃的松弛形式 355 7.2 單純形算法 358 7.2.1 單純形算法的例子 358 7.2.2 軸轉操作 361 7.2.3 正規的單純形算法 364 7.3 初始基本可行解 372 7.4 應用——將組合優化問題形式化為線性規劃 381 7.5 小結 385 第8章 圖形學基礎——計算幾何 386 8.1 線段的性質 386 8.1.1 叉積及其應用 387 8.1.2 程序實現 390 8.2 判斷是否存在線段相交 393 8.2.1 算法描述與分析 394 8.2.2 程序實現 397 8.3 求凸殼 401 8.3.1 Graham掃描 402 8.3.2 Jarvis行進 409 8.4 求最鄰近點對 412 8.4.1 算法描述與分析 413 8.4.2 程序實現 416 8.5 應用 418 8.5.1 光導管 418 8.5.2 最小邊界矩形 420 8.5.3 得克薩斯一日游 422 8.6 小結 423 第9章 實驗指南 424 9.1 實驗平臺的搭建 424 9.1.1 C、C++語言的實驗平臺 424 9.1.2 Java語言的實驗平臺 425 9.2 代碼驗證 429 9.2.1 C語言代碼驗證 429 9.2.2 C++語言代碼驗證 434 9.2.3 Java語言代碼驗證 435 9.3 自主實驗 436 9.3.1 C語言環境 436 9.3.2 C++語言環境 438 9.3.3 Java語言環境 439 附錄 442 參考文獻 455 980_CAD應用程式開發詳解——Visual C++與OpenGL綜合應用 ▲▼ 981_數字圖像處理原理與實踐_基於Visual C++開發 ▲▼ 第1章 Visual C++與數字圖像處理 1 1.1 數字圖像處理概述 1 1.1.1 圖像與數字圖像 1 1.1.2 數字圖像處理研究的內容 3 1.1.3 數字圖像處理的應用 5 1.2 Visual C++概述 7 1.2.1 編程語言的奇跡 7 1.2.2 Visual C++簡介 15 1.2.3 卓越的集成開發環境 18 1.3 在Visual C++中處理數字圖像 21 1.3.1 位圖和調色板 21 1.3.2 圖形設備接口 22 1.3.3 OpenCV 25 1.3.4 ImageMagick 25 1.4 本章實例:利用Visual C++實現畫圖程序 25 1.4.1 實例預覽 25 1.4.2 開始創建項目 26 1.4.3 完成實例編碼 28 第2章 色彩系統 34 2.1 學習圖像處理從認識色彩開始 34 2.1.1 什么是顏色 34 2.1.2 顏色的屬性 36 2.1.3 光源能量分布圖 37 2.2 CIE色度圖 39 2.2.1 CIE色彩模型的建立 39 2.2.2 CIE色度圖的理解 41 2.2.3 CIE色度圖的后續發展 42 2.3 常用色彩空間 43 2.3.1 RGB顏色空間 43 2.3.2 CMY/CMYK顏色空間 44 2.3.3 HSV/HSB顏色空間 46 2.3.4 HSI/HSL顏色空間 47 2.3.5 Lab顏色空間 49 2.3.6 YUV/YCbCr顏色空間 49 2.4 色彩空間的轉換方法 50 2.4.1 RGB轉換到HSV的方法 51 2.4.2 RGB轉換到HSI的方法 51 2.4.3 RGB轉換到YUV的方法 53 2.4.4 RGB轉換到YCbCr的方法 54 2.5 本章實例:Photoshop色彩編輯器的實現 55 2.5.1 需要解決的若干問題 55 2.5.2 開始創建項目 56 2.5.3 完成實例編碼 58 第3章 圖像文件的格式與編碼 60 3.1 圖像文件概述 60 3.1.1 圖像文件 60 3.1.2 圖像文件的一般結構 61 3.1.3 圖像文件的常用參數 61 3.2 BMP文件格式 63 3.2.1 文件結構 63 3.2.2 文件頭和信息頭 63 3.2.3 主要參數 64 3.3 GIF文件格式 64 3.3.1 GIF格式簡介 64 3.3.2 GIF文件結構 65 3.3.3 GIF文件塊的結構 66 3.4 PNG文件格式 70 3.4.1 PNG格式簡介 70 3.4.2 PNG文件結構 70 3.4.3 PNG中的關鍵數據塊 72 3.5 離散余弦變換 73 3.5.1 基本概念及數學描述 73 3.5.2 離散余弦變換的意義 75 3.5.3 離散余弦變換的實現 79 3.6 圖像的壓縮編碼 86 3.6.1 霍夫曼(Huffman)編碼 87 3.6.3 LZW編碼 96 3.6.3 行程編碼 98 3.7 JPEG文件及其解碼程序的實現 99 3.7.1 JPEG文件概述 99 3.7.2 JPEG的編解碼原理 99 3.7.3 JPEG文件的格式 108 3.7.4 JPEG解碼程序的實現 111 第4章 使用DIB處理數字圖像 117 4.1 設備相關位圖和設備無關位圖 117 4.1.1 設備相關位圖(DDB) 117 4.1.2 設備無關位圖(DIB) 117 4.2 CBitmap類 118 4.2.1 創建DDB 118 4.2.2 CBitmap中的成員函數 120 4.2.3 應用DDB顯示圖像 121 4.2.4 應用DDB顯示大圖像 122 4.3 進一步了解DIB 130 4.3.1 DIB的結構 131 4.3.2 DIB信息段 131 4.3.3 位圖數據 133 4.3.4 與DIB有關的函數 133 4.4 本章實例:DIB類的封裝 135 4.4.1 類的抽象與設計 135 4.4.2 編寫構造函數 138 4.4.3 DIB位圖的顯示 142 4.4.4 BMP文件的存儲 143 第5章 使用GDI+處理數字圖像 145 5.1 GDI+簡介 145 5.1.1 GDI+概述 145 5.1.2 GDI+的結構 146 5.1.3 GDI+在Visual C++ 2005中的配置 146 5.2 GDI+基礎 148 5.2.1 Graphics類 148 5.2.2 GDI+的基本數據類型 151 5.2.3 GDI+中的顏色 152 5.3 GDI+處理圖像的基本方法 154 5.3.1 GDI+的圖像類 154 5.3.2 創建圖像對象 155 5.3.3 圖像的顯示和縮放 157 5.3.4 圖像的基本處理方法 162 5.4 圖像的剪裁 170 5.4.1 剪裁區域 170 5.4.2 GraphicsPath類 171 5.4.3 Region類 175 5.5 處理圖像的色彩 180 5.5.1 ColorMatrix結構體 180 5.5.2 改變圖像的透明度 181 5.5.3 將圖像轉換為灰度圖 185 5.5.4 改變圖像的亮度 187 5.5.5 改變圖像的對比度 189 5.6 本章實例:播放GIF動畫 191 5.6.1 播放原理分析 192 5.6.2 處理過程 192 5.6.3 具體實現 193 第6章 常見圖像顯示特效 198 6.1 顯示特效概述 198 6.1.1 顯示特效基礎 198 6.1.2 顯示特效過程 200 6.1.3 顯示特效類 201 6.2 掃描顯示特效 203 6.2.1 特效預覽 203 6.2.2 基本原理和實現方法 204 6.2.3 編程實現 205 6.3 移動顯示特效 206 6.3.1 特效預覽 206 6.3.2 基本原理和實現方法 207 6.3.3 編程實現 208 6.4 百葉窗顯示特效 209 6.4.1 特效預覽 209 6.4.2 基本原理和實現方法 210 6.4.3 編程實現 211 6.5 柵條顯示特效 212 6.5.1 特效預覽 213 6.5.2 基本原理和實現方法 213 6.5.3 編程實現 214 6.6 馬賽克顯示特效 216 6.6.1 特效預覽 216 6.6.2 基本原理和實現方法 216 6.6.3 編程實現 217 6.7 雨滴顯示特效 219 6.7.1 特效預覽 219 6.7.2 基本原理和實現方法 219 6.7.3 編程實現 220 6.8 本章實例:類似ACDSee的圖像瀏覽工具 220 6.8.1 實例預覽 221 6.8.2 概要設計 221 6.8.3 完成實例編碼 226 第7章 圖像的點運算 234 7.1 灰度直方圖 234 7.1.1 灰度直方圖 234 7.1.2 基本原理 236 7.1.3 編程實現 236 7.2 灰度線性變換 246 7.2.1 基本原理 246 7.2.2 編程實現 248 7.3 灰度非線性變換 251 7.3.1 灰度對數變換 251 7.3.2 灰度冪次變換 255 7.3.3 灰度指數變換 258 7.4 灰度閾值變換 260 7.4.1 基本原理 260 7.4.2 編程實現 261 7.5 灰度拉伸 263 7.5.1 基本原理 263 7.5.2 編程實現 265 7.6 灰度均衡 269 7.6.1 基本原理 270 7.6.2 編程實現 271 第8章 對圖像進行幾何變換 273 8.1 圖像幾何變換的基本理論 273 8.1.1 圖像幾何變換概述 273 8.1.2 圖像幾何變換的數學描述 276 8.2 圖像的平移變換 276 8.2.1 效果預覽 276 8.2.2 基本原理 277 8.2.3 編程實現 278 8.3 圖像的鏡像變換 282 8.3.1 效果預覽 282 8.3.2 基本原理 283 8.3.3 編程實現 284 8.4 圖像的轉置 287 8.4.1 效果預覽 288 8.4.2 基本原理 288 8.4.3 編程實現 288 8.5 圖像的縮放 290 8.5.1 效果預覽 290 8.5.2 基本原理 291 8.5.3 插值算法介紹 292 8.5.4 編程實現 295 8.6 圖像的旋轉 300 8.6.1 效果預覽 300 8.6.2 基本原理 300 8.6.3 編程實現 304 8.7 使用GDI+實現圖像的幾何變換 310 8.7.1 GDI+的變換操作 311 8.7.2 平移 312 8.7.3 縮放 314 8.7.4 旋轉 315 8.7.5 變換的組合 319 8.7.6 利用矩陣進行其他幾何變化 321 第9章 圖像的增強處理 325 9.1 圖像的簡單平滑 325 9.1.1 鄰域處理的基本概念 325 9.1.2 圖像的簡單平滑原理 328 9.1.3 圖像簡單平滑的算法實現 329 9.2 圖像的高斯平滑 333 9.2.1 平滑線性濾波器 333 9.2.2 高斯平滑的原理 334 9.2.3 高斯分布 335 9.2.4 高斯平滑的算法實現 337 9.3 圖像的中值濾波 341 9.3.1 統計排序濾波器 341 9.3.2 圖像中值濾波的原理 342 9.3.3 圖像中值濾波的算法實現 344 9.4 圖像的拉普拉斯銳化 350 9.4.1 圖像的銳化 350 9.4.2 拉普拉斯銳化的原理 351 9.4.3 拉普拉斯銳化的算法實現 351 9.5 Sobel邊緣細化 356 9.5.1 Sobel邊緣細化的原理 356 9.5.2 Sobel邊緣細化的編程實現 358 第10章 圖像的邊緣和輪廓 365 10.1 邊緣檢測 365 10.1.1 邊緣檢測的基本概念 365 10.1.2 常規邊緣檢測 366 10.1.3 帶方向的邊緣檢測 372 10.1.4 拉普拉斯算子 376 10.2 Hough變換 383 10.2.1 平面坐標系的轉換 383 10.2.2 Hough變換的思想 385 10.2.3 直線的Hough變換 385 10.2.4 圓的Hough變換 389 10.2.5 彩色圖像的Hough變換 390 10.3 種子算法 396 10.3.1 算法介紹 396 10.3.2 編程實現 399 10.4 輪廓跟蹤 403 10.4.1 區域表示方法 403 10.4.2 計算區域的面積和周長 411 10.4.3 單區域跟蹤 412 10.4.4 多區域跟蹤 415 第11章 圖像的形態學處理 419 11.1 數學形態學 419 11.2 一些必要的概念和符號約定 419 11.3 圖像的腐蝕 423 11.3.1 腐蝕原理 423 11.3.2 編程實現 426 11.4 圖像的膨脹 431 11.4.1 膨脹原理 431 11.4.2 編程實現 434 11.5 腐蝕和膨脹的性質及應用 437 11.5.1 腐蝕和膨脹的代數性質 437 11.5.2 腐蝕和膨脹的應用 440 11.6 開運算和閉運算 446 11.6.1 開運算 446 11.6.2 閉運算 447 11.6.3 編程實現 449 11.6.4 開運算和閉運算的代數性質 450 11.7 圖像形態學的其他運算 452 11.7.1 擊中/不擊中運算 452 11.7.2 細化處理 455 11.8 基于形態學分水嶺的圖像分割 459 11.8.1 基本概念 459 11.8.2 分水嶺算法 459 11.8.3 編程實現分水嶺分割 462 第12章 數字圖像的加密與隱藏 471 12.1 混沌理論概述 471 12.1.1 混沌理論的發展 471 12.1.2 混沌的基本概念 473 12.1.3 混沌的度量與判定 475 12.2 幾種典型的混沌系統舉例 478 12.2.1 Logistic映射 478 12.2.2 Henon映射 481 12.2.3 Chebychev映射 481 12.3 數字圖像的混沌加密簡介 482 12.3.1 密碼學與混沌密碼學 482 12.3.2 圖像混沌加密算法的分類 483 12.4 基于置亂的圖像加密技術 484 12.4.1 數字圖像與排列變換 484 12.4.2 利用Hilbert曲線置亂圖像 485 12.4.3 利用Arnold變換置亂圖像 492 12.4.4 數字圖像置亂算法的評價 497 12.5 混沌在圖像加密中的應用 497 12.5.1 以排序法為基礎的混沌置亂 498 12.5.2 基于起始地址法的混沌置亂 508 12.5.3 基于灰度值變換的混沌加密 509 12.5.4 對圖像進行混沌加密的評價 512 12.6 數字圖像的隱藏技術 516 12.6.1 圖像融合技術簡介 516 12.6.2 基于混沌的圖像隱藏算法 518 12.6.3 圖形用戶界面設計 519 12.6.4 編碼實現 520 第13章 使用OpenCV處理數字圖像 528 13.1 OpenCV簡介 528 13.1.1 OpenCV的前世今生 528 13.1.2 OpenCV的諸多優點 529 13.1.3 OpenCV的命名規則 529 13.1.4 OpenCV的相關資源 530 13.1.5 OpenCV的安裝與配置 530 13.2 OpenCV的結構 533 13.2.1 OpenCV的體系結構 534 13.2.2 OpenCV的函數結構 534 13.2.3 OpenCV的功能結構 535 13.2.4 OpenCV的數據結構 536 13.3 利用OpenCV顯示圖像 537 13.3.1 圖像文件的載入與顯示 538 13.3.2 圖像文件的創建、保存和復制 539 13.4 應用OpenCV進行圖像平滑 543 13.4.1 功能函數描述 543 13.4.2 交互界面設計 544 13.4.3 編碼實現 544 13.5 應用OpenCV進行邊緣檢測 548 13.5.1 Canny準則 548 13.5.2 Canny算法簡介 548 13.5.3 在OpenCV中使用Canny算法 549 13.6 應用OpenCV進行形態學處理 555 13.6.1 功能函數描述 555 13.6.2 交互界面設計 556 13.6.3 編碼實現 556 13.7 在OpenCV中應用Hough變換 560 13.7.1 功能函數描述 560 13.7.2 交互界面設計 562 13.7.3 編碼實現 562 13.8 靜態人臉檢測程序的實現 567 13.8.1 人臉檢測概述 567 13.8.2 算法分析 568 13.8.3 編程實現 571 第14章 使用ImageMagick處理圖像 577 14.1 ImageMagick簡介 577 14.1.1 處理數字圖像的利器——ImageMagick 577 14.1.2 ImageMagick的特性和功能 578 14.1.3 Magick++ 578 14.2 ImageMagick的使用配置 579 14.2.1 下載ImageMagick 579 14.2.2 編譯ImageMagick 579 14.2.3 配置ImageMagick環境 580 14.3 Magick++基礎 583 14.3.1 第一個Magick++程序 583 14.3.2 Magick++的核心——Image對象 584 14.3.3 Color對象 587 14.3.4 Geometry對象 589 14.4 初探Magick++ 591 14.4.1 圖像的縮放 591 14.4.2 圖像的旋轉 595 14.4.3 剪裁圖像 595 14.4.4 矩陣變換 598 14.4.5 圖像的鏡像和滾動 599 14.5 使用Magick++對圖像進行增強處理 601 14.5.1 調整圖像的基本屬性 601 14.5.2 高斯平滑 604 14.5.3 銳化 605 14.5.4 去除圖像的噪點 606 14.6 使用Magick++實現圖像特效 609 14.6.1 運動模糊特效 609 14.6.2 黑洞特效 610 14.6.3 浮雕效果 612 14.6.4 油畫效果 613 14.6.5 陰影效果 614 14.6.6 旋渦效果 616 14.7 其他Magick++用法 618 14.7.1 種子填充 619 14.7.2 批量處理 621 14.7.3 真彩色轉256色 624 14.7.4 圖像合成 626 14.7.5 ImageMagick的C語言接口 628 參考文獻 634 982_程式相依性檢查(2套TOOL) ▲▼ win-ldd只能看相依性 Dependency Walker可以看相依性、所有DLL關係 983_圖像模式識別VC技術實現 ▲▼ 相關基礎知識 00_最小平方估測 01_機率+貝氏(分類器)定理 02_Neural Networks(類神經網路) BPN SOM 03_AI 第1章 模式識別的基本概念 1.1 模式識別的基本概念 1.2 圖像識別 1.3 位圖基礎 小結 習題 第2章 分類器設計 2.1 特征空間優化設計問題 2.2 分類器設計準則 2.3 分類器設計基本方法 2.4 判別函數 2.5 分類器的選擇 2.6 訓練與學習 小結 習題 第3章 模板匹配分類器 3.1 特征類設計 3.2 待測樣品特征提取 3.3 訓練集特征庫的建立 3.4 模板匹配分類法 小結 習題 第4章 基于概率統計的Bayes分類器 4.1 Bayes決策的基本概念 4.2 基于最小錯誤率的Bayes決策 4.3 基于最小風險的Bayes決策 4.4 Bayes決策比較 4.5 基于二值數據的Bayes分類實現 4.6 基于最小錯誤率的Bayes分類實現 4.7 基于最小風險的Bayes分類實現 小結 習題 第5章 幾何分類器 5.1 幾何分類器的基本概念 5.2 線性判別函數 5.3 線性差別函數的實現 5.4 感知器算法 5.5 增量校正算法 5.6 LMSE驗證可分性 5.7 LMSE分類算法 5.8 Fisher分類 5.9 線性分類器實現分類的局限性 5.10 非線性判別函數 5.11 分段線性差別函數 5.12 勢函數法 小結 習題 第6章 神經網絡分類器 6.1 人工神經網絡的基本原理 6.2 BP網絡設計 6.3 神經網絡分類器設計 小結 習題 第7章 圖像分割與特征提取 7.1 聚類簡介 7.2 圖像閾值分割 7.3 圖像的標識及特征提取 7.4 圖像的輪廓提取 7.5 圖像的測量 小結 習題 第8章 聚類分析 第9章 模糊聚類分析 第10章 遺傳算法聚類分析 附錄A 幾種主要矩陣運算的程序代碼 參考文獻 984_VC數字圖像處理典型案例祥解 ▲▼ 前言 第1章 數字圖像處理軟件開發概述 1 1.1 Visual C++ 1 1.1.1 Visual C++概述 2 1.1.2 Visual C++處理數字圖像的基本方法 2 1.2 OpenCV 4 1.2.1 OpenCV概述 5 1.2.2 在Visual C++中使用OpenCV 6 1.3 VTK 7 1.3.1 VTK概述 7 1.3.2 在Visual C++中使用VTK 7 1.4 經驗分享 15 第2章 繪圖板 16 2.1 核心技術原理 16 2.1.1 圖形設備接口技術 16 2.1.2 幾何圖形繪制技術 17 2.2 系統功能 22 2.2.1 功能描述 22 2.2.2 界面效果 22 2.3 系統結構與流程 23 2.3.1 總體結構 23 2.3.2 主要流程 23 2.4 編程實現 24 2.4.1 繪圖板初始化 24 2.4.2 圖形繪制 26 2.4.3 圖形保存 41 2.5 經驗分享 44 第3章 圖片瀏覽器 46 3.1 核心技術原理 46 3.1.1 圖像文件的編解碼技術 46 3.1.2 圖像的幾何變換技術 48 3.1.3 圖像的切換特效技術 55 3.2 常見的圖像格式分析 58 3.2.1 BMP圖像 58 3.2.2 PCX圖像 61 3.2.3 TGA圖像 64 3.2.4 JPEG圖像 70 3.2.5 GIF圖像 71 3.3 系統功能 74 3.3.1 功能描述 75 3.3.2 界面效果 75 3.4 系統結構與流程 76 3.4.1 總體結構 76 3.4.2 主要流程 76 3.5 編程實現 78 3.5.1 LanImage類 78 3.5.2 BMP解碼/編碼模塊 80 3.5.3 PCX解碼/編碼模塊 81 3.5.4 TGA解碼/編碼模塊 84 3.5.5 圖像顯示模塊 87 3.5.6 全屏瀏覽模塊 88 3.5.7 圖像縮放模塊 90 3.5.8 圖像旋轉模塊 91 3.5.9 圖像特效顯示模塊 93 3.5.10 圖像鏡像模塊 95 3.5.11 圖像轉置模塊 96 3.6 經驗分享 97 第4章 圖像編輯器 101 4.1 核心技術原理 101 4.1.1 灰度變換增強技術 101 4.1.2 直方圖增強技術 103 4.1.3 平滑去噪技術 105 4.1.4 圖像銳化技術 107 4.1.5 模糊復原技術 109 4.1.6 彩色增強技術 110 4.1.7 濾鏡技術 111 4.2 系統功能 115 4.2.1 功能描述 115 4.2.2 界面效果 116 4.3 系統結構與流程 116 4.3.1 總體結構 116 4.3.2 主要流程 116 4.4 編程實現 118 4.4.1 灰度變換增強模塊 118 4.4.2 直方圖增強模塊 121 4.4.3 平滑去噪模塊 125 4.4.4 圖像銳化模塊 133 4.4.5 彩色增強模塊 135 4.4.6 模糊復原模塊 136 4.4.7 濾鏡效果模塊 139 4.5 經驗分享 144 第5章 CT圖像重建系統 145 5.1 核心技術原理 145 5.1.1 三維可視化技術 146 5.1.2 圖像重建技術 153 5.2 系統功能 158 5.2.1 功能描述 158 5.2.2 界面效果 159 5.3 系統結構與流程 160 5.3.1 總體結構 160 5.3.2 主要流程 160 5.4 編程實現 163 5.4.1 圓錐體CT圖像重建系統 163 5.4.2 頭部切片CT圖像重建系統 165 5.5 經驗分享 172 第6章 數字圖像水印系統 173 6.1 核心技術原理 173 6.1.1 圖像水印嵌入技術 174 6.1.2 圖像水印提取技術 182 6.2 系統功能 186 6.2.1 功能描述 186 6.2.2 界面效果 187 6.3 系統結構與流程 188 6.3.1 總體結構 188 6.3.2 主要流程 188 6.4 編程實現 192 6.4.1 不帶嵌入因子的加性規則算法實現 192 6.4.2 最低有效位算法實現 201 6.5 經驗分享 203 第7章 遙感圖像配準系統 204 7.1 核心技術原理 204 7.1.1 遙感圖像幾何校正技術 205 7.1.2 遙感圖像輻射校正技術 208 7.1.3 遙感圖像增強技術 208 7.1.4 遙感圖像配準技術 209 7.2 系統功能 210 7.2.1 功能描述 210 7.2.2 界面效果 210 7.3 系統結構與流程 212 7.3.1 總體結構 212 7.3.2 主要流程 213 7.4 編程實現 213 7.4.1 CDib類 213 7.4.2 幾何校正模塊 216 7.4.3 遙感圖像增強模塊 228 7.4.4 遙感圖像配準模塊 242 7.5 經驗分享 246 第8章 圖像檢索系統 248 8.1 核心技術原理 248 8.1.1 圖像特征提取技術 248 8.1.2 相似度計算技術 257 8.2 系統功能 258 8.2.1 功能描述 258 8.2.2 界面效果 259 8.3 系統結構與流程 261 8.3.1 總體結構 261 8.3.2 主要流程 261 8.4 編程實現 262 8.4.1 系統設置模塊 262 8.4.2 圖像檢索模塊 265 8.5 經驗分享 281 第9章 細胞檢測與計數系統 282 9.1 核心技術原理 282 9.1.1 顯微圖像去噪技術 282 9.1.2 顏色空間及其轉換技術 283 9.1.3 閾值分割技術 286 9.1.4 Blob分析技術 287 9.1.5 邊緣提取技術 290 9.2 系統功能 291 9.2.1 功能描述 291 9.2.2 界面效果 292 9.3 系統結構與流程 292 9.3.1 總體結構 292 9.3.2 主要流程 293 9.4 編程實現 293 9.4.1 圖像平滑模塊 293 9.4.2 HSI閾值選取模塊 295 9.4.3 梯度修正模塊 299 9.4.4 填充孔洞模塊 301 9.4.5 腐蝕模塊 305 9.4.6 邊界生成模塊 306 9.4.7 查找中心點和修正模塊 309 9.5 經驗分享 320 第10章 指紋提取與識別系統 321 10.1 核心技術原理 321 10.1.1 指紋圖像場及其分割技術 321 10.1.2 指紋圖像增強技術 325 10.1.3 指紋圖像細化技術 327 10.1.4 指紋局部特征點提取技術 329 10.1.5 指紋匹配技術 331 10.2 系統功能 334 10.2.1 功能描述 334 10.2.2 界面效果 334 10.3 系統結構與流程 335 10.3.1 總體結構 335 10.3.2 主要流程 335 10.4 編程實現 335 10.4.1 指紋圖像分割模塊 335 10.4.2 指紋圖像增強模塊 337 10.4.3 指紋圖像二值化模塊 339 10.4.4 細化模塊 341 10.4.5 特征點提取模塊 344 10.4.6 指紋圖像比對模塊 348 10.5 經驗分享 362 第11章 人臉檢測與識別系統 364 11.1 核心技術原理 364 11.1.1 人臉檢測及定位技術 364 11.1.2 人臉特征提取技術 369 11.1.3 人臉識別技術 371 11.2 系統功能 372 11.2.1 功能描述 373 11.2.2 界面效果 373 11.3 系統結構與流程 373 11.3.1 總體結構 374 11.3.2 主要流程 374 11.4 編程實現 375 11.4.1 人臉檢測模塊 375 11.4.2 人臉定位模塊 378 11.4.3 人臉特征點提取模塊 382 11.4.4 人臉匹配模塊 396 11.5 經驗分享 398 第12章 運動車輛檢測跟蹤系統 399 12.1 核心技術原理 399 12.1.1 運動目標檢測技術 399 12.1.2 運動目標跟蹤技術 402 12.2 系統功能 404 12.2.1 功能描述 404 12.2.2 界面效果 404 12.3 系統結構與流程 406 12.3.1 總體結構 406 12.3.2 主要流程 406 12.4 編程實現 407 12.4.1 變量定義模塊 408 12.4.2 文件打開模塊 408 12.4.3 背景提取模塊 409 12.4.4 車輛跟蹤與檢測模塊 410 12.4.5 軌跡繪制模塊 412 12.5 經驗分享 413 第13章 車型識別系統 414 13.1 核心技術原理 414 13.1.1 基于背景去除的目標分割技術 414 13.1.2 車型特征提取技術 419 13.1.3 車型分類識別技術 420 13.2 系統功能 423 13.2.1 功能描述 423 13.2.2 界面效果 423 13.3 系統結構與流程 424 13.3.1 總體結構 424 13.3.2 主要流程 424 13.4 編程實現 425 13.4.1 變量定義模塊 425 13.4.2 圖像顯示模塊 426 13.4.3 載入圖像模塊 427 13.4.4 車輛提取模塊 427 13.4.5 輪廓提取模塊 431 13.4.6 車型識別模塊 431 13.5 經驗分享 433 第14章 車牌識別系統 434 14.1 核心技術原理 434 14.1.1 車牌圖像預處理技術 434 14.1.2 車牌定位技術 437 14.1.3 車牌字符分割技術 438 14.1.4 車牌字符識別技術 440 14.2 系統功能 441 14.2.1 功能描述 442 14.2.2 界面效果 442 14.3 系統結構與流程 442 14.3.1 總體結構 442 14.3.2 主要流程 442 14.4 編程實現 442 14.4.1 自定義函數模塊 442 14.4.2 車牌提取模塊 446 14.4.3 傾斜校正模塊 450 14.4.4 字符分割模塊 452 14.4.5 字符歸一化模塊 456 14.4.6 字符細化模塊 456 14.4.7 字符特征提取模塊 467 14.4.8 車牌字符識別模塊 468 14.5 經驗分享 474 參考文獻 475 985_VC數字圖像模式識別典型案例祥解 ▲▼ 第一篇 基 礎 篇 第1章 數字圖像模式識別 1 1.1 數字圖像處理概述 1 1.1.1 數字圖像獲取 2 1.1.2 圖像顯示與存儲 2 1.1.3 數字圖像文件 2 1.1.4 數字圖像處理 5 1.2 模式識別基本概念 6 1.2.1 模式和模式識別的概念 6 1.2.2 模式空間、特征空間和類別空間 6 1.2.3 模式識別系統的組成 7 1.2.4 數字圖像模式識別的基本過程 8 1.3 Visual C++數字圖像處理類 9 1.3.1 Visual C++編程方法 9 1.3.2 Visual C++數字圖像處理類 17 第2章 模式識別實現方法 38 2.1 統計模式識別 38 2.1.1 特征的提取與選擇 38 2.1.2 模式分類 45 2.1.3 模式聚類 50 2.2 經典模式識別決策方法及實現 54 2.2.1 人工神經網絡 54 2.2.2 隱馬爾可夫模型 63 2.2.3 決策樹 79 2.2.4 模板匹配 88 2.2.5 支持向量機 90 第二篇 案 例 篇 第3章 一維條形碼識別系統 98 3.1 系統介紹 98 3.2 核心技術原理 99 3.2.1 常用的條形碼編碼規則 99 3.2.2 預處理過程——二值化 103 3.2.3 譯碼過程——平均值法 104 3.3 系統結構與流程 104 3.3.1 系統總體結構 105 3.3.2 二值化算法流程 105 3.3.3 平均值法算法流程 105 3.4 編程實現 106 3.4.1 二值化算法 106 3.4.2 平均值法 107 3.5 運行效果 117 第4章 基于模糊聚類的圖形識別系統 118 4.1 系統介紹 118 4.2 核心技術原理 119 4.2.1 圖像的標識及特征提取 119 4.2.2 模式相似性測量 121 4.2.3 模糊理論基本概念 124 4.2.4 模糊聚類分析 136 4.3 系統結構與流程 137 4.3.1 系統總體結構 137 4.3.2 圖像標識及特征提取算法流程 138 4.3.3 計算模糊距離算法流程 138 4.3.4 模糊聚類算法流程 139 4.4 編程實現 140 4.4.1 圖像的標識及特征提取 140 4.4.2 計算模糊距離 145 4.4.3 模糊聚類 147 4.5 運行效果 153 第5章 人臉檢測系統 156 5.1 系統介紹 156 5.2 核心技術原理 157 5.2.1 彩色圖像空間 157 5.2.2 人臉膚色相似度計算 158 5.2.3 人臉識別與分割 160 5.3 系統結構與流程 161 5.3.1 系統總體結構 161 5.3.2 人臉膚色相似度算法流程 162 5.3.3 人臉識別與分割算法流程 162 5.4 編程實現 163 5.4.1 人臉膚色相似度比較 163 5.4.2 人臉識別與分割 168 5.5 運行效果 172 第6章 人臉定位系統 174 6.1 系統介紹 174 6.2 核心技術原理 174 6.2.1 人臉輪廓提取 175 6.2.2 眼睛識別與定位 176 6.2.3 鼻子識別與定位 176 6.2.4 嘴部識別與定位 176 6.3 系統結構與流程 177 6.3.1 系統總體結構 177 6.3.2 人臉定位 177 6.3.3 人臉內輪廓提取 178 6.3.4 眼睛定位 180 6.3.5 鼻子定位 180 6.3.6 嘴部定位 181 6.4 編程實現 182 6.4.1 人臉位置定位 183 6.4.2 人臉內輪廓提取 186 6.4.3 眼睛定位 189 6.4.4 鼻子定位 196 6.4.5 嘴部定位 200 6.5 運行效果 205 第7章 灰度車牌定位系統 207 7.1 系統介紹 207 7.2 核心技術原理 208 7.2.1 車牌圖像預處理 208 7.2.2 車牌定位 215 7.3 系統結構與流程 216 7.3.1 系統總體結構 216 7.3.2 圖像灰度化算法流程 216 7.3.3 直方圖均衡化算法流程 217 7.3.4 圖像平滑算法流程 218 7.3.5 圖像二值化算法流程 218 7.3.6 圖像小顆粒去噪算法流程 219 7.3.7 車牌定位算法流程 222 7.4 編程實現 222 7.4.1 圖像預處理 222 7.4.2 車牌定位 232 7.5 運行效果 239 第8章 腦部CT圖像輔助診斷系統 241 8.1 系統介紹 241 8.2 核心技術原理 242 8.2.1 腦部CT圖像特點分析 242 8.2.2 腦部CT圖像預處理——分段線性拉伸 243 8.2.3 醫學CT圖像特征提取 244 8.2.4 腦部CT圖像分類與輔助診斷 246 8.3 系統結構與流程 249 8.3.1 系統總體結構 249 8.3.2 分段線性拉伸算法流程 250 8.3.3 灰度共生矩陣算法流程 250 8.3.4 BP神經網絡算法流程 251 8.4 編程實現 252 8.4.1 分段線性拉伸 253 8.4.2 特征提取 254 8.4.3 分類器訓練 260 8.5 運行效果 263 8.5.1 系統操作步驟 263 8.5.2 實驗結果及分析 265 第9章 手寫體數字識別系統 267 9.1 系統介紹 267 9.2 核心技術原理 268 9.2.1 手寫體數字圖像校正 268 9.2.2 手寫體數字網格特征 269 9.2.3 手寫體數字識別 270 9.3 系統結構與流程 270 9.3.1 系統總體結構 271 9.3.2 手寫體數字圖像校正 271 9.3.3 手寫體數字網格特征 273 9.3.4 手寫體數字識別 273 9.4 編程實現 274 9.4.1 手寫體數字圖像校正 274 9.4.2 手寫體數字網格特征 280 9.4.3 手寫體數字識別 285 9.5 運行效果 287 第10章 指紋識別的預處理 289 10.1 系統介紹 289 10.2 核心技術原理 289 10.2.1 指紋圖像場及其計算 290 10.2.2 指紋圖像的分割 294 10.2.3 指紋圖像的均衡 296 10.2.4 指紋圖像的收斂 298 10.2.5 指紋圖像的平滑 302 10.2.6 指紋圖像的智能增強 304 10.2.7 指紋圖像骨架的提取準備 306 10.2.8 指紋圖像骨架的細化提取 308 10.3 系統結構與流程 309 10.3.1 系統總體結構 309 10.3.2 指紋圖像方向場計算算法流程 309 10.3.3 指紋圖像的分割算法流程 310 10.3.4 指紋圖像的均衡算法流程 310 10.3.5 指紋圖像的收斂算法流程 311 10.3.6 指紋圖像的平滑算法流程 311 10.3.7 指紋圖像的智能增強算法流程 312 10.3.8 指紋圖像的骨架提取準備算法流程 312 10.3.9 指紋圖像的骨架細化算法流程 313 10.4 編程實現 315 10.4.1 指紋圖像方向場計算 315 10.4.2 指紋圖像的分割 317 10.4.3 指紋圖像的均衡 318 10.4.4 指紋圖像的收斂 320 10.4.5 指紋圖像的平滑 323 10.4.6 指紋圖像的智能增強 324 10.4.7 指紋圖像的智能二值化 327 10.4.8 指紋圖像的骨架細化 331 10.5 運行效果 336 第11章 指紋圖像特征提取系統 339 11.1 系統介紹 339 11.2 核心技術原理 339 11.2.1 指紋特征定義及分類 340 11.2.2 指紋特征點的提取 340 11.2.3 指紋偽特征點及其去除方法 343 11.3 系統結構與流程 344 11.3.1 系統總體結構 344 11.3.2 指紋特征端點、叉點的提取算法流程 344 11.3.3 指紋特征奇異點提取算法流程 345 11.3.4 去除偽指紋特征點算法流程 345 11.4 編程實現 347 11.4.1 指紋圖像端點提取 347 11.4.2 指紋圖像叉點提取 348 11.4.3 指紋圖像奇異點提取 349 11.4.4 指紋圖像偽特征點去除 353 11.5 運行效果 365 第12章 指紋圖像比對系統 366 12.1 系統介紹 366 12.2 核心技術原理 366 12.2.1 指紋圖像“柔性”配準 367 12.2.2 指紋圖像匹配 368 12.3 系統結構與流程 372 12.3.1 系統總體結構 372 12.3.2 指紋圖像配準算法流程 373 12.3.3 指紋圖像匹配算法流程 373 12.3.4 指紋圖像比對算法流程 374 12.4 編程實現 374 12.4.1 指紋圖像匹配 375 12.4.2 指紋圖像全局比對 379 12.5 運行效果 389 第三篇 拓 展 篇 第13章 彩色汽車牌照識別系統 390 13.1 系統概述 390 13.1.1 汽車牌照定位 391 13.1.2 汽車牌照字符分割 392 13.1.3 汽車牌照字符識別 393 13.2 系統結構與流程 393 13.3 汽車牌照定位 393 13.3.1 汽車牌照特征 394 13.3.2 汽車牌照區域識別思路 395 13.3.3 汽車牌照區域粗定位 396 13.3.4 汽車牌照區域精定位 410 13.3.5 汽車牌照傾斜校正 412 13.3.6 汽車牌照提取 415 13.4 汽車牌照分割 421 13.4.1 汽車牌照二值化 421 13.4.2 去除邊框 427 13.4.3 字符分割 427 13.5 汽車牌照字符識別 428 13.5.1 字符圖像預處理 429 13.5.2 字符模板匹配 432 第14章 中文印刷體文檔識別系統 437 14.1 系統概述 437 14.1.1 中文印刷體文檔識別研究現狀 437 14.1.2 中文印刷體文檔識別結構與流程 441 14.1.3 中文印刷體文檔識別中的難點 441 14.2 中文印刷體文檔圖像預處理 442 14.2.1 中文印刷體文檔圖像特點 442 14.2.2 二值化處理 443 14.2.3 平滑去噪 446 14.2.4 傾斜校正 448 14.3 版面分析 455 14.3.1 版面結構 455 14.3.2 版面分析方法 456 14.3.3 版面理解 466 14.3.4 版面重構 474 14.4 印刷體漢字識別 474 14.4.1 文本區域預處理 475 14.4.2 印刷體漢字的特征提取 479 14.4.3 印刷體漢字的識別 486 14.5 公式的定位與提取 490 14.5.1 印刷體文檔公式的特點 491 14.5.2 基于投影的公式定位和提取 491 14.5.3 基于Parzen窗的獨立行公式定位和提取 493 14.5.4 基于字符寬度中心矩的公式定位和提取 495 14.5.5 基于漢字拒識的內嵌公式定位和提取 500 14.6 公式字符分割與識別 502 14.6.1 公式字符的特點 502 14.6.2 公式字符的分割 503 14.6.3 公式字符的識別 509 14.7 公式結構分析與表示 517 14.7.1 公式結構分析的難點 517 14.7.2 公式結構分析前的字符預處理 519 14.7.3 公式結構分析方法 519 14.7.4 公式結構表示方法 528 14.8 圖表處理 534 14.8.1 文檔中圖形圖像的表示與處理 535 14.8.2 文檔中表格的分析與識別 537 參考文獻 548 986_Visual C++案例模組開發講座 ▲▼ Ch01 VISUAL C++ 6.0開發環境 Ch02 VISUAL C++程式設計基礎 Ch03 影像處理模組 Ch04 辦公助手模組 Ch05 桌面精靈模組 Ch06 企業通訊模組 Ch07 媒體播放器模組 Ch08 螢幕錄像模組 Ch09 電腦監控模組 Ch10 線上考試模組 Ch11 SQL資料庫模組 Ch12 萬能列印模組 Ch13 FTP檔案上傳下載模組 Ch14 電子郵件模組 Ch15 網路五子棋模組 Ch16 軟體註冊模組 Ch17 簡訊群發模組 Ch18 監控卡視訊監控模組 Ch19 介面換膚模組 Ch20 系統優化模組 987_精通Matlab與C_C++混合程序設計(第3版) ▲▼ 988_C_C++函數與算法速查手冊 ▲▼ 第1篇 c語言函數 第1章 ctype.h庫函數 第2章 stdio.h庫函數 第3章 string.h庫函數 第4章 stdlib.h庫函數 第5章 math.h庫函數 第6章 conio.h庫函數 第7章 graphics.h庫函數 第8章 stdarg.h庫函數 第9章 time.h庫函數 第10章 dir.h庫函數 第11章 其他常用函數 第2篇 c++輸入/輸出流 第12章 ios_base類 第13章 iostream類 第14章 文件流類 第15章 string類 第3篇 標準容器 第16章 vector類 第17章 deque類 第18章 list類 第19章 stack類 第20章 queue類 第21章 set類 第22章 map類 第4篇 演算法 第23章 排序演算法 第24章 查找演算法 第25章 遞推算法 第26章 反覆運算演算法 第27章 遞迴演算法 第28章 枚舉演算法 第29章 貪心演算法 第30章 回溯演算法 第31章 矩陣演算法 989_Windows駭客技術揭秘與攻防Ⅰ ▲▼ 第1篇 Windows系統駭客技術基礎入門 第1章 Windows系統駭客技術基礎 1.1 認識駭客程式設計 1.1.1 什麼是駭客 1.1.2 瞭解駭客程式設計 1.2 選擇作業系統和程式設計語言 1.2.1 本書應用的作業系統 1.2.2 本書選擇的程式設計語言 1.3 本書選擇的開發工具 1.3.1 VisualC++6.0的使用方法 1.3.2 BorlandC++Builder6的使用方法 1.4 認識Windows API 1.4.1 API與視覺化程式設計環境 1.4.2 C語言標準庫函數和API函數的區別 1.4.3 具有字串參數的API函數 第2章 檔操作技術 2.1 使用C語言標準庫函數進行檔操作 2.1.1 打開文件 2.1.2 關閉文件 2.1.3 讀文件 2.1.4 寫文件 2.1.5 文件定位 2.2 使用WindowsAPI函數進行檔操作 2.2.1 CreateFile()函數 2.2.2 CloseHandle()函數 2.2.3 ReadFile()函數 2.2.4 WriteFilefl函數 2.2.5 SetFilePointer()函數 2.2.6 DeleteFile()函數 2.2.7 CreateDirectory()函數 2.2.8 RemoveDitreetory()函數 2.2.9 CopyFile()函數 2.2.10 MoveFile()函數 2.2.11 GetFileAttributes()函數和SetFileAttributtes()函數 2.3 文本加密器 2.3.1 文本加密的原理 2.3.2 使用VC實現文本加密器 2.4 文件粉碎機 2.4.1 Windows刪除檔的原理 2.4.2 使用BCB實現檔粉碎 第2篇 駭客技術程式設計 第3章 電腦病毒的基本原理與防禦 3.1 電腦病毒概述 3.1.1 什麼是病毒 3.1.2 病毒程式設計技術說明 3.2 註冊表程式設計 3.2.1 認識註冊表 3.2.2 註冊表程式設計技術 3.3 自刪除技術的模擬 3.3.1 自刪除技術簡介 3.3.2 自刪除技術的3種方式 3-3.3 自刪除技術應用 3.4 剖析映射劫持技術 3.4.1 什麼是映射劫持 3.4.2 映射劫持詳細分析 3.4.3 防範映射劫持技術攻擊 3.5 徹底認識Autorun.inf文件 3.5.1 Autofun.inf文件簡介 3.5.2 Autofun.inf文件參數 3.6 病毒實現典型代碼分析 3.6.1 隱藏運行,將自身移動到系統目錄 3.6.2 修改註冊表相關鍵值 3.6.3 遍歷所有硬碟生成Autorun.inf文件 3.7 病毒的查殺與防禦 3.7.1 病毒的查殺與防禦簡介 3.7.2 防火牆主動防禦設置 第4章 後門程式設計與防禦技術 4.1 後門概述 4.2 Winsock網路程式設計基礎 4.2.1 C/S模式 4.2.2 WinsockAPI及其常用函數簡介 4.3 後門分析之自啟動 4.3.1 開機檔案夾 4.3.2 自身複製程式 4.3 -3登錄開機鍵值 4.3.4 應用程式關聯 4.3.5 開機檔案 4.4 Windows服務程式設計技術 4.4.1 Windows服務 4.4.2 編寫服務程式 4.5 服務控制程式設計技術 4.5.1 打開SCM-OpenSCManager()函數 4.5.2 打開一個服務物件-OpenService()函數 4.5.3 安裝一個服務-CreateService()函數 4.5.4 啟動一個服務-StartService()函數 4.5.5 查詢服務的運行狀態-QueryServiceStatus()函數 4.5.6 控制操作-ControlService()函數 4.5.7 刪除服務-DeleteService()函數 4.6 後門分析之螢幕截取 4.6.1 螢幕截取簡介 4.6.2 MFC類實現螢幕截取 4.6.3 BCB實現螢幕截取 4.7 後門分析之系統資訊搜集與控制 4.7.1 關閉/重啟電腦 4.7.2 指定HTTP地址下載檔案 4.7.3 清除系統日誌 4.8 後門分析之結果回顯 4.8.1 管道後門簡介 4.8.2 雙管道後門代碼 4.9 透視後門連接機制 4.10 後門的查殺與防範 4.10.1 懷疑被感染 4.10.2 確定被感染 4.10.3 手動殺毒 第5章 掃描嗅探技術原理剖析 5.1 認識多執行緒 5.1.1 理解執行緒 5.1.2 利用標準WindowsAPI創建多執行緒程式 5.1.3 利用BCB提供的執行緒類 5.2 網路程式設計深入之原始通訊端 5.2.1 原始通訊端簡介 5.2.2 利用原始通訊端嗅探資料流程 5.3 掃描的實現 5.3.1 完整埠掃描 5.3.2 TCPSYN掃描 5.4 使用WinPcap 5.5 Sniffier原理剖析 5.5.1 Sniffer的危害 5.5.2 Sniffer的工作原理 5.5.3 TCP仰協定的4層結構 5.6 Sniffer程式設計實現 5.7 ARP欺騙 5.7.1 ARP欺騙簡介 5.7.2 ARP欺騙演示程式 5.8 針對掃描嗅探的防禦 5.8.1 針對掃描的防禦 5.8.2 針對嗅探的防禦 5.8.3 針對ARP欺騙的防禦 第6章 木馬下載者的技術分析與防範 6.1 認識木馬下載者 6.1.1 “掛馬”原理 6.1.2 木馬下載者簡介 6.2 網路程式設計深入之Winlnet 6.2.1 InternetOpen()函數 6.2.2 InternetConnect()函數 6.2.3 InternetOpenUrl()函數 6.2.4 InternetQueryDataAvailable()函數 6.2.5 IntemetReadF'ile()函數 6.2.6 InternetSetFilePointer()函數 6.2.7 InternetWriteFile()函數 6.2.8 InternetCloseHandle()函數 …… 第7章 U盤小偷的剖析與防禦 第8章 密碼盜竊的類比與防範 第9章 驗證碼的破解與防範 第3篇 安全防禦 第10章 進程控制技術 第11章 病毒專殺工具的編寫 第12章 NTFS資料流程的檢測與清除 第13章 系統監控技術 第14章 API Hook與SPI 第15章 WinLogon程式設計和SSDT的掛鉤與恢復 附錄A Visual C++6.0 附錄B Borland C++Builder 6.0的安裝 990_Code Library_XYZ ▲▼ 991_精通Windows程式設計——基於Visual C++實現 ▲▼ 第1篇 Windows編程基礎 1 第1章 Windows程序設計基礎知識 2 1.1 Windows程序設計知識簡述 2 1.1.1 Windows編程特點 2 1.1.2 Windows應用程序的編程模型 3 1.1.3 Windows程序基本結構 4 1.2 Windows 程序的發展 4 1.2.1 傳統的Windows 編程 4 1.2.2 Windows與API函數 5 1.2.3 Windows與Win32 API 5 1.2.4 Windows與面向對象 6 1.2.5 Windows對象與MFC對象 6 1.3 Windows編程應用工具 7 1.3.1 Windows編程工具簡介 7 1.3.2 為何使用Visual C++ 8 1.3.3 Visual C++ 6.0的安裝 8 1.3.4 Visual C++ 6.0集成開發環境 9 1.3.5 Visual C++ 6.0的基本使用 9 1.4 【實例】一個顯示窗口的典型的Windows應用程序 10 1.4.1 創建應用程序 10 1.4.2 Windows程序生命期 12 1.4.3 Windows程序要素簡介 12 1.4.4 Winmain()入口函數 13 1.4.5 WndProc()窗口處理函數 13 1.4.6 進隊消息與不進隊消息 14 1.4.7 設備描述表 14 1.4.8 應用程序的退出 15 1.5 【實例】建立第一個控制臺應用程序 15 1.5.1 創建工程 15 1.5.2 控制臺應用程序說明 16 1.5.3 編譯并鏈接源程序 16 1.5.4 應用Visual C++調試器調試程序 17 1.6 Windows程序設計注意事項 17 1.6.1 Windows應用程序中的調用關系 18 1.6.2 Windows應用程序多任務處理 18 1.7 Windows程序常用事項 18 1.7.1 匈牙利式命名規則 18 1.7.2 代碼的對齊 19 1.7.3 應用注釋 20 1.7.4 MSDN的應用 21 1.8 小結 21 第2章 Win32編程基礎 22 2.1 Win32程序開發流程 22 2.2 【實例】用Win32 API編寫一個簡單的Windows程序 23 2.2.1 創建應用程序 23 2.2.2 調用頭文件說明 23 2.2.3 WinMain()入口函數 23 2.2.4 API函數的調用 24 2.3 Win32編程思想 25 2.3.1 事件驅動的程序設計思想 25 2.3.2 消息和消息處理機制思想 25 2.3.3 動態鏈接技術 26 2.3.4 句柄 27 2.3.5 其他Win32編程思想 28 2.4 【實例】一個典型的Win32程序 28 2.4.1 程序入口WinMain() 28 2.4.2 窗口類的注冊與產生 29 2.4.3 消息循環 30 2.4.4 窗口函數的處理 30 2.4.5 消息映射 31 2.4.6 對話框的運行 32 2.4.7 模塊定義文件 33 2.4.8 資源描述文件 33 2.5 進程與線程 34 2.5.1 內核對象 34 2.5.2 基于Win32的進程模式 35 2.5.3 進程的屬性與資源 36 2.5.4 進程與線程的相關性 37 2.5.5 創建進程(CreatProcess)函數 37 2.5.6 【實例】進程的創建 38 2.5.7 控制與終止某進程 39 2.5.8 與進程相關的API函數 40 2.6 Win32程序的空閑處理 40 2.7 小結 41 第3章 創建Windows應用程序 42 3.1 創建Windows應用程序的方法 42 3.1.1 底層編程法 42 3.1.2 MFC編程法 42 3.1.3 高層編程法 43 3.2 【實例】建立一個簡單的MFC應用程序 43 3.2.1 創建應用程序 43 3.2.2 MFC應用程序對象 44 3.2.3 建立框架窗口對象 45 3.2.4 繪制窗口 47 3.2.5 消息映射處理 48 3.2.6 有關字符串的定義 48 3.3 了解Windows應用程序的類型 49 3.4 關于AppWizard與ClassWizard 49 3.4.1 AppWizard應用程序向導 49 3.4.2 ClassWizard類向導 50 3.5 【實例】創建第一個MFC AppWizard工程——MDI應用程序 51 3.5.1 生成MDI應用程序框架 51 3.5.2 瀏覽應用程序文件及工作區中的項目 51 3.5.3 調試應用程序 52 3.6 關于MDI的說明 53 3.7 關于MDI應用程序框架的組成說明 53 3.7.1 應用程序對象 54 3.7.2 窗口對象 55 3.7.3 視圖對象 55 3.7.4 文檔對象 56 3.7.5 MFC的主要類及其層次關系 57 3.8 MDI應用程序的執行流程 57 3.9 MDI工程的相關文件說明 58 3.9.1 工程文件 58 3.9.2 資源文件 59 3.9.3 預編譯文件 59 3.9.4 注冊表項目文件 59 3.9.5 幫助文件 60 3.10 小結 60 第2篇 Windows繪圖程序設計與消息61 第4章 Windows應用程序輸入設備 62 4.1 鼠標 62 4.1.1 鼠標設備基礎知識 62 4.1.2 鼠標光標的熱點 63 4.1.3 客戶區與非客戶區鼠標消息 63 4.1.4 鼠標跟隨原理與WM_MOUSEMOVE 64 4.1.5 【實例】鼠標消息的捕獲與應用 65 4.1.6 鼠標光標形狀的設置 66 4.1.7 【實例】不同區域顯示不同光標 67 4.2 鍵盤 69 4.2.1 鍵盤設備基礎知識 70 4.2.2 接收鍵盤輸入焦點消息及處理 70 4.2.3 獲取擊鍵消息 71 4.3 【實例】從鍵盤讀取輸入 72 4.3.1 為鍵盤數據建立存儲區域 72 4.3.2 讀取擊鍵 72 4.3.3 鍵入的字符保存并顯示 73 4.3.4 運行程序并鍵入字符測試 73 4.3.5 程序拓展——文檔的永久保存 74 4.4 計時器 74 4.4.1 設置計時器 74 4.4.2 WM_TIMER消息 75 4.4.3 清除計時器WM_KILL 75 4.4.4 【實例】設置2個計時器程序 75 4.5 小結 79 第5章 Windows窗口中繪圖 80 5.1 圖形設備接口GDI 80 5.1.1 設備描述表類介紹 80 5.1.2 設備描述表類的應用方法 82 5.1.3 GDI繪圖對象 83 5.1.4 【實例】用GDI繪圖 86 5.2 繪圖模式 87 5.2.1 繪圖模式概述 88 5.2.2 【實例】繪圖模式的應用——橡皮筋矩形的實現 88 5.3 Windows中的映射模式 90 5.3.1 映射模式概述 91 5.3.2 【實例】映射模式的應用 92 5.4 坐標轉換 93 5.4.1 邏輯坐標與設備坐標 94 5.4.2 坐標轉換的函數應用 95 5.4.3 【實例】坐標轉換的應用 95 5.5 窗口與視口 96 5.5.1 概念介紹 96 5.5.2 窗口與視口的原點 97 5.5.3 窗口與視口的相關函數及其應用 97 5.6 窗口重繪函數 99 5.6.1 OnDraw與OnPaint函數 99 5.6.2 添加重繪資源 101 5.7 圖形文件的操作 102 5.7.1 創建新文檔 102 5.7.2 保存圖形文件 102 5.7.3 打開圖形文件 103 5.7.4 其他相關函數 103 5.8 【實例】鼠標繪制直線與圓形 104 5.8.1 繪圖原理與WM_LBUTTONDOWN、WM_LBUTTONUP 104 5.8.2 集合數組類的應用——圖形的保存 107 5.8.3 圖形的重繪 108 5.8.4 坐標點的平移——圖形拉伸效果的實現 109 5.8.5 實例拓展 110 5.9 小結 110 第6章 Windows應用程序窗口消息 111 6.1 窗口管理 111 6.1.1 C++窗口對象和Windows窗口對象 111 6.1.2 創建窗口 111 6.1.3 定位窗體 112 6.1.4 銷毀窗體 113 6.2 主要編程對象——窗口 113 6.2.1 窗口結構與類型 114 6.2.2 窗口關系 115 6.2.3 窗口應用框架 117 6.3 窗口消息映射 117 6.3.1 Windows消息的分類 117 6.3.2 消息的結構 120 6.3.3 消息處理 120 6.3.4 窗口消息映射表 121 6.3.5 窗口消息的定位 122 6.3.6 消息映射宏的種類 122 6.3.7 消息的預處理 123 6.4 窗口消息處理機制 124 6.4.1 標準窗口消息處理 124 6.4.2 命令消息處理 125 6.4.3 消息反射處理 125 6.4.4 更新命令處理 126 6.4.5 自定義窗口消息 126 6.4.6 自定義命令 128 6.4.7 Post與Send消息 128 6.4.8 兩進程窗口通信的注冊消息 129 6.4.9 線程消息處理 130 6.4.10 跨進程消息處理 131 6.4.11 【實例】跨進程消息交換數據 132 6.5 【實例】MFC的窗口過程 133 6.5.1 MFC窗口過程的指定 133 6.5.2 對Windows消息的接收和處理 135 6.5.3 對命令消息的接收和處理 136 6.5.4 對控制通知消息的接收和處理 140 6.5.5 對更新命令的接收和處理 141 6.6 小結 144 第3篇 Windows界面設計與調試技巧 145 第7章 用戶窗口界面的設計 146 7.1 Windows控件的設計與應用 146 7.1.1 Windows控件簡介 146 7.1.2 靜態控件 147 7.1.3 按鈕 148 7.1.4 編輯框 151 7.1.5 列表框 153 7.1.6 組合框 156 7.1.7 滾動條 157 7.1.8 列表視圖控件 158 7.1.9 樹形控件 158 7.1.10 旋轉、進度條和滑塊控件 160 7.1.11 位圖按鈕、圖像列表控件 162 7.1.12 自定義控件的顏色 163 7.2 菜單 165 7.2.1 菜單基礎知識 166 7.2.2 創建菜單應用程序 166 7.2.3 創建上下文快捷/彈出式菜單 168 7.2.4 菜單應用程序加入對話框窗口 169 7.3 工具欄 170 7.3.1 創建工具欄 170 7.3.2 工具欄與應用程序相關聯 172 7.3.3 工具欄的可見性 172 7.3.4 停靠欄 174 7.3.5 組合框加入工具欄 175 7.4 狀態欄 176 7.4.1 創建普通狀態欄 176 7.4.2 高級狀態欄 177 7.4.3 在對話框中設置狀態欄 180 7.5 對話框的設計 181 7.5.1 對話框原理介紹 182 7.5.2 模式對話框與無模式對話框的設計 182 7.5.3 系統通用對話框的應用 183 7.5.4 自定義對話框形狀 188 7.5.5 對話框與控件的數據交互 188 7.5.6 對話框與文檔視圖的數據交互 190 7.6 【實例】將文本框與組合框加入列表視圖控件實例 190 7.6.1 準備知識 190 7.6.2 創建結構體 196 7.6.3 創建所需相關類 197 7.6.4 功能實現 198 7.7 小結 199 第8章 Windows文件系統與序列化 200 8.1 文件CFile類 200 8.1.1 創建、打開與關閉文件 201 8.1.2 文件的讀、寫 202 8.1.3 移動文件指針 203 8.1.4 臨時文件的操作 204 8.1.5 監控目錄,搜索文件 205 8.1.6 文件屬性的獲取和更改 206 8.1.7 文件的分割與合并 208 8.1.8 鎖定文件 209 8.1.9 CFile的派生類 210 8.2 文件的序列化 210 8.2.1 序列化基礎 211 8.2.2 序列化函數Serialize() 214 8.2.3 自定義可序列化類 217 8.3 【實例】普通文件的編輯器 218 8.3.1 項目框架程序 218 8.3.2 初始化文檔數據 219 8.3.3 文件串行化處理 220 8.3.4 文本數據的顯示 220 8.3.5 文本字體的設定 222 8.4 小結 223 第9章 文檔與視圖 224 9.1 文檔與視圖的概述 224 9.1.1 文檔與視圖的關系 224 9.1.2 文檔與視圖的接口 225 9.1.3 SDI與MDI應用程序的區別 225 9.2 文檔/視圖框架結構的關系 226 9.2.1 MFC各對象間的關系 226 9.2.2 文檔類 227 9.2.3 視圖類 227 9.2.4 框架窗口類 228 9.2.5 文檔模板類 228 9.2.6 多文檔 229 9.2.7 多視圖 230 9.2.8 拆分窗口 230 9.2.9 文檔/視圖的滾動處理 231 9.3 文檔類 233 9.3.1 文檔的生命周期 233 9.3.2 文檔的操作與函數的重載 234 9.3.3 設置文檔修改標志 235 9.3.4 文檔的序列化保存 235 9.3.5 關閉并銷毀文檔 235 9.4 視圖類 235 9.4.1 視圖類的函數 236 9.4.2 初始化視圖 236 9.4.3 視圖與文檔的數據交互 236 9.4.4 多個視圖添加到單個文檔 237 9.5 文檔/視圖與框架的交互 238 9.5.1 框架窗口的處理 239 9.5.2 框架命令的處理 239 9.5.3 框架與文檔/視圖的交互 240 9.6 打印的設置 241 9.6.1 文檔與視結構中的打印流程 241 9.6.2 自定義打印功能的實現 243 9.6.3 打印預覽 244 9.6.4 【實例】圖像打印程序 245 9.7 【實例】多文檔和多視圖的編程 249 9.7.1 創建多文檔與多視圖 249 9.7.2 定義新視圖類 250 9.7.3 修改子框架窗口CChildFrame 252 9.8 小結 253 第10章 程序調試與編程技巧 254 10.1 調試Visual C++程序 254 10.1.1 bugs程序 254 10.1.2 設置斷點 255 10.1.3 單步執行 256 10.1.4 檢查運行時程序的數據 257 10.1.5 編輯并繼續 260 10.2 其他相關處理 260 10.2.1 異常處理 261 10.2.2 診斷調試 262 10.2.3 用Visual C做遠程調試 264 10.2.4 使用調試功能檢測內存泄漏 264 10.3 DEBUG版本與RELEASE版本 269 10.4 其他應用技巧 270 10.4.1 全面清除歷史記錄的實例 270 10.4.2 清理Visual C++工程 275 10.4.3 通過優化使代碼效率更高 275 10.4.4 Visual C+ +編譯時加快鏈接 276 10.4.5 代碼維護技巧 277 10.5 小結 277 第4篇 Windows數據庫、網絡通信與ActiveX控件 279 第11章 數據庫的程序設計 280 11.1 數據庫概述 280 11.1.1 應用Visual C++開發數據庫的特點 280 11.1.2 Visual C++開發數據庫的技術 281 11.2 ODBC數據庫管理 281 11.2.1 ODBC的體系結構 282 11.2.2 SQL操作 283 11.2.3 用MFC ODBC訪問數據庫 285 11.3 DAO數據庫訪問對象 287 11.3.1 基于DAO的程序特色 287 11.3.2 用DAO開發數據庫應用程序 288 11.4 【實例】ODBC技術開發數據庫 290 11.4.1 創建數據源 290 11.4.2 創建ODBC應用程序 290 11.4.3 增加數據表記錄 292 11.4.4 刪除數據表記錄 294 11.4.5 查找數據表記錄 294 11.5 小結 295 第12章 網絡通信程序設計 296 12.1 網絡體系結構與協議 296 12.1.1 OSI參考模型 296 12.1.2 TCP/IP分層模型 298 12.1.3 IP地址 300 12.1.4 TCP/IP 302 12.1.5 UDP協議 302 12.1.6 客戶端/服務器模型 303 12.2 Windows Sockets編程 304 12.2.1 Socket(套接字)介紹 304 12.2.2 Socket程序設計 305 12.2.3 【實例】WinSock程序 308 12.3 MFC套接字編程 311 12.3.1 套接字類CAsyncSocket的介紹 312 12.3.2 套接字類CSocket的應用 313 12.3.3 CSocket類的應用特點 314 12.4 WinInet編程 316 12.4.1 MFC的類WinInet 316 12.4.2 WinInet編程方法介紹 317 12.5 FTP編程 318 12.5.1 FTP簡介 319 12.5.2 FTP客戶端編程 320 12.5.3 FTP的斷點續傳 326 12.6 【實例】創建Web瀏覽器 326 12.6.1 準備知識 326 12.6.2 建立Web瀏覽器框架 327 12.6.3 應用程序實現代碼 328 12.7 小結 331 第13章 COM、OLE與ActiveX技術 332 13.1 組件對象模型COM 332 13.1.1 創建COM對象 333 13.1.2 對象的生存期 333 13.1.3 獲取接口指針 334 13.1.4 創建COM服務器 334 13.1.5 定位透明度 336 13.2 OLE技術概述 337 13.2.1 結構化存儲 337 13.2.2 Monikers介紹 338 13.2.3 統一數據傳輸 338 13.2.4 OLE文檔 339 13.2.5 OLE自動化 339 13.3 ActiveX技術概述 340 13.3.1 ActiveX控件 341 13.3.2 ActiveX文檔 342 13.3.3 ActiveX控件容器 343 13.3.4 創建Activex控件 344 13.3.5 注冊ActiveX控件 347 13.3.6 插入Activex控件 348 13.4 【實例】ActiveX時鐘控件 350 13.4.1 創建時鐘控件的基本功能 350 13.4.2 控件屬性 351 13.4.3 使用屬性頁 354 13.4.4 設置控件的事件 355 13.4.5 添加控件方法 356 13.5 小結 356 第5篇 Windows內部處理技術 第14章 多線程應用程序的設計 358 14.1 線程基本知識概述 358 14.1.1 線程的ID和句柄 358 14.1.2 設置線程的優先級 359 14.1.3 多任務與多線程 360 14.2 創建和使用線程 361 14.2.1 創建線程CreateThread()函數 361 14.2.2 線程的分類 363 14.2.3 啟動及初始化線程 363 14.2.4 懸掛和恢復線程 366 14.2.5 線程的休眠 366 14.2.6 終止線程 366 14.2.7 【實例】創建工作者線程 367 14.3 實現多線程同步的相關知識 368 14.3.1 線程的同步機制 369 14.3.2 臨界區對象 369 14.3.3 互斥內核對象 372 14.3.4 事件內核對象 374 14.3.5 信號量內核對象 378 14.3.6 線程局部存儲 381 14.3.7 互鎖函數 382 14.4 【實例】多線程的應用 382 14.4.1 添加線程對象和線程函數 382 14.4.2 添加鼠標左鍵觸發函數 383 14.4.3 添加狀態欄坐標提示 383 14.5 小結 384 第15章 Windows系統與內存的管理 385 15.1 驅動器和文件目錄 385 15.1.1 驅動器卷標操作 385 15.1.2 邏輯驅動器的操作 386 15.1.3 格式化驅動器 387 15.1.4 文件目錄操作 388 15.2 注冊表的應用 389 15.2.1 注冊表的結構 389 15.2.2 注冊表的管理 390 15.2.3 【實例】用注冊表鍵存儲用戶信息 393 15.3 任務欄狀態區 395 15.3.1 任務欄狀態區操作函數 395 15.3.2 任務欄狀態區托盤程序的實現 396 15.4 控制面板 398 15.4.1 控制面板的工作原理 399 15.4.2 控制面板應用程序的實現 400 15.5 內存管理 402 15.5.1 Windows內存分布 402 15.5.2 內存屬性與狀態 403 15.5.3 全局內存與虛擬內存 405 15.5.4 虛擬內存管理 407 15.5.5 自由的、保留的和已提交的虛擬內存 407 15.5.6 釋放虛擬內存 409 15.5.7 改變虛擬內存頁的保護 409 15.5.8 鎖定虛擬內存頁 409 15.5.9 查詢進程的虛擬內存 410 15.6 內存映射文件 410 15.6.1 內存映射文件的用途 410 15.6.2 內存映射文件的編程流程 412 15.6.3 內存映射文件的視圖 412 15.7 【實例】用內存映射文件處理大文件 413 15.7.1 創建文件內核對象 414 15.7.2 創建文件映射內核對象 414 15.7.3 文件數據及視圖的映射 416 15.7.4 關閉文件對象和文件映射對象 416 15.8 小結 417 第16章 動態鏈接庫DLL和鉤子 418 16.1 動態鏈接庫DLL 418 16.1.1 動態鏈接的特點 418 16.1.2 Visual C++支持的動態鏈接庫類型 419 16.1.3 DLL入口函數 420 16.1.4 DLL函數的導出 421 16.1.5 連接DLL的方式——顯式和隱式 423 16.2 【實例】應用共享MFC DLL創建一個DLL 424 16.3 【實例】測試DLL文件 424 16.3.1 創建應用程序框架 424 16.3.2 編輯對話框并添加相應執行函數 424 16.3.3 連接待測試的DLL庫文件 425 16.4 Windows鉤子 426 16.4.1 鉤子的定義及類型 426 16.4.2 鉤子鏈表和鉤子子程 429 16.4.3 鉤子的安裝與卸載 429 16.4.4 全局鉤子與線程鉤子 430 16.4.5 傳遞事件的函數 430 16.5 【實例】應用鉤子機制截獲鼠標點擊次數 431 16.5.1 創建鉤子DLL文件 431 16.5.2 創建調用鉤子DLL文件的程序 432 16.5.3 運行并測試 433 16.6 Win32 API的掛鉤技術 433 16.6.1 網絡監控技術 434 16.6.2 屏幕取詞技術 434 16.6.3 防止進程結束技術 435 16.6.4 DLL注入機制 435 16.6.5 系統服務的掛鉤 437 16.7 小結 438 第17章 Windows內核程序設計與防火墻開發 439 17.1 Windows操作系統和CPU的保護模式 439 17.1.1 Windows層次結構 439 17.1.2 CPU保護模式 440 17.1.3 內核模式和用戶模式 440 17.2 Windows系統服務 441 17.2.1 常用API服務函數 441 17.2.2 設計服務程序 443 17.3 內核驅動程序設計 447 17.3.1 內核及內核對象 447 17.3.2 內核模式編程環境 447 17.3.3 內核鉤子 449 17.3.4 【實例】最小化驅動程序 451 17.4 Windows防火墻 454 17.4.1 防火墻核心功能概述 454 17.4.2 代理防火墻與服務器 455 17.4.3 防火墻的工作流程 456 17.4.4 防火墻模塊的劃分 457 17.5 網絡封包截獲技術 457 17.5.1 過濾驅動程序的特性 457 17.5.2 傳輸層截獲網絡封包技術 457 17.5.3 網絡驅動程序接口規范 457 17.5.4 中間驅動程序的特性 458 17.5.5 網絡中間驅動程序截獲網絡封包技術 458 17.6 【實例】Windows個人防火墻系統的實現 459 17.6.1 Filter-Hook 驅動 459 17.6.2 創建內核模式驅動 459 17.6.3 過濾函數 462 17.6.4 設置過濾函數 465 17.6.5 防火墻應用戶操作界面的實現 466 17.6.6 防火墻應用程序的實現 467 17.7 小結 470 992_精通Windows Sockets網路開發——基於Visual C++實現 ▲▼ 第1篇 網絡開發基礎篇 第1章 準備開發環境 3 1.1 Windows Sockets開發概述 3 1.1.1 網絡程序開發應用 3 1.1.2 網絡程序結構——C/S、B/S 3 1.1.3 網絡程序通信基礎——網絡協議 4 1.1.4 網絡程序通信技術——Windows Sockets介紹 4 1.2 連接網絡 6 1.2.1 TCP/IP設置 6 1.2.2 TCP/IP是否工作正常 8 1.2.3 系統與網絡適配器間的通信 8 1.2.4 默認網關 8 1.2.5 ping其他計算機IP地址 9 1.3 創建應用程序 9 1.3.1 控制臺程序 10 1.3.2 MFC應用程序 11 1.4 調試兩個應用程序 12 1.4.1 啟動兩個工程 13 1.4.2 將一個工程加入到另一個工程空間 13 1.5 配置開發環境 14 1.6 小結 15 第2章 TCP/IP簡介 16 2.1 開放系統互連參考模型 16 2.2 TCP/IP協議概述 17 2.2.1 TCP/IP模型 17 2.2.2 UDP 18 2.2.3 TCP 18 2.2.4 端口 19 2.3 小結 19 第3章 Windows Sockets基礎 20 3.1 Windows Sockets 20 3.1.1 應用程序與Windows Sockets的關系 20 3.1.2 套接字 21 3.2 協議特征 22 3.2.1 面向連接與面向無連接 22 3.2.2 可靠性與次序性 22 3.2.3 面向消息 22 3.2.4 部分消息 23 3.2.5 從容關閉 23 3.2.6 路由選擇 24 3.2.7 廣播數據 24 3.3 IP定址 24 3.3.1 IP定址 25 3.3.2 字節順序問題 25 3.4 基本TCP套接字編程 26 3.4.1 WSAStartup()函數 26 3.4.2 socket()函數 28 3.4.3 bind()函數 28 3.4.4 listen()函數 29 3.4.5 accept()函數 29 3.4.6 recv()函數 30 3.4.7 send()函數 31 3.4.8 closesocket()函數 31 3.4.9 shutdown()函數 31 3.4.10 connect()函數 32 3.5 TCP示例程序 32 3.5.1 服務器實現 33 3.5.2 客戶端實現 35 3.6 基本UDP套接字編程 37 3.6.1 recvfrom()函數 37 3.6.2 sendto()函數 37 3.7 UDP示例程序 38 3.7.1 服務器實現 38 3.7.2 客戶端實現 40 3.8 套接字選項 41 3.8.1 getsockopt()函數 41 3.8.2 setsockopt()函數 42 3.8.3 SOL_SOCKET選項級別 43 3.9 小結 44 第2篇 Visual C++網絡模式開發篇 第4章 阻塞模式開發 47 4.1 套接字的阻塞模式 47 4.1.1 阻塞模式 47 4.1.2 設置套接字的阻塞模式 49 4.1.3 阻塞模式套接字的優勢和不足 49 4.2 客戶端與服務器相互問候 50 4.3 服務器設計 50 4.3.1 啟動 50 4.3.2 接受請求 50 4.3.3 接收數據 51 4.3.4 退出 51 4.3.5 錯誤提示 51 4.4 服務器實現 51 4.4.1 初始化 52 4.4.2 創建套接字 54 4.4.3 綁定套接字 54 4.4.4 監聽 56 4.4.5 接受請求 56 4.4.6 接收數據 56 4.4.7 發送數據 58 4.4.8 退出 59 4.5 客戶端設計 59 4.5.1 啟動 59 4.5.2 連接服務器 60 4.5.3 接收數據 60 4.5.4 退出 60 4.6 客戶端實現 60 4.6.1 初始化 61 4.6.2 創建套接字 61 4.6.3 連接服務器 62 4.6.4 發送數據 63 4.6.5 接收數據 63 4.6.6 退出 64 4.7 小結 64 第5章 非阻塞模式開發 65 5.1 套接字的非阻塞模式 65 5.1.1 非阻塞模式 65 5.1.2 設置套接字的非阻塞模式 65 5.1.3 非阻塞模式套接字的優勢和不足 68 5.2 遠程算數運算程序 68 5.2.1 需求分析 68 5.2.2 數據包設計 69 5.3 服務器設計 69 5.3.1 多線程設計 69 5.3.2 界面設計 71 5.4 服務器實現 71 5.4.1 主線程 72 5.4.2 接受客戶端請求線程 77 5.4.3 客戶端類 78 5.4.4 清理資源線程 86 5.5 客戶端設計 88 5.5.1 多線程設計 88 5.5.2 界面設計 89 5.6 客戶端實現 89 5.6.1 主線程 89 5.6.2 數據發送線程 97 5.6.3 數據接收線程 99 5.7 小結 100 第6章 Select模型開發 101 6.1 套接字Select模型 101 6.1.1 Select模型 101 6.1.2 select()函數 102 6.1.3 Select模型的優勢和不足 106 6.2 遠程文件下載 107 6.2.1 需求分析 107 6.2.2 數據包設計 107 6.3 服務器設計 108 6.3.1 多線程設計 108 6.3.2 界面設計 109 6.3.3 發送目錄結構設計 109 6.4 服務器實現 110 6.4.1 靜態類圖 110 6.4.2 初始化 113 6.4.3 啟動服務 114 6.4.4 接收處理客戶端目錄和文件長度的請求 116 6.4.5 接收客戶端數據 120 6.4.6 向客戶端發送目錄 123 6.4.7 上傳文件 129 6.4.8 退出 133 6.5 客戶端設計 133 6.5.1 多線程設計 133 6.5.2 界面設計 134 6.6 客戶端實現 136 6.6.1 靜態類圖 136 6.6.2 初始化 138 6.6.3 連接服務器 139 6.6.4 發送請求接收目錄 140 6.6.5 瀏覽目錄 147 6.6.6 下載文件 149 6.6.7 顯示下載文件進度 159 6.6.8 退出 160 6.7 小結 160 第7章 WSAAsyncSelect模型開發 161 7.1 套接字WSAAsyncSelect模型分析 161 7.1.1 WSASsyncSelect模型 161 7.1.2 與Select模型比較 162 7.2 套接字WSAAsyncSelect模型實現 162 7.2.1 WSAAsyncSelect()函數 163 7.2.2 窗口例程 163 7.2.3 創建窗口 164 7.3 WSAAsyncSelect模型示例程序 167 7.3.1 聲明自定義消息 168 7.3.2 聲明窗口例程 168 7.3.3 注冊窗口類 169 7.3.4 創建和顯示窗口 169 7.3.5 創建套接字 169 7.3.6 注冊感興趣的網絡事件 169 7.3.7 綁定套接字 169 7.3.8 開始監聽 170 7.3.9 消息循環 170 7.3.10 程序退出 170 7.3.11 窗口例程 170 7.3.12 CClient類 171 7.3.13 管理客戶端套接字的鏈表 171 7.3.14 網絡事件消息處理函數 172 7.4 調用WSAAsyncSelect()函數注意問題 173 7.4.1 接收不到網絡事件 173 7.4.2 關于accept()函數 173 7.4.3 關于FD_READ網絡事件 174 7.4.4 如何判斷套接字已經關閉 174 7.4.5 發送數據失敗 174 7.5 發生網絡事件的條件 174 7.5.1 FD_READ事件 174 7.5.2 FD_WRITE事件 174 7.5.3 FD_ACCEPT事件 175 7.5.4 FD_CONNECT事件 175 7.5.5 FD_CLOSE事件 175 7.6 WSAAsyncSelect模型優勢和不足 175 7.7 局域網簡易聊天程序 176 7.7.1 需求分析 176 7.7.2 用戶狀態設計 177 7.7.3 數據包類設計 179 7.8 服務器設計 180 7.8.1 界面設計 180 7.8.2 通信層架構設計 182 7.9 服務器實現 182 7.9.1 開發前的準備 182 7.9.2 靜態類圖 183 7.9.3 啟動服務器 186 7.9.4 初始化 191 7.9.5 接受客戶端請求 194 7.9.6 接收數據 196 7.9.7 處理數據 203 7.9.8 刪除用戶 210 7.9.9 用戶離線 212 7.9.10 退出 213 7.10 客戶端設計 218 7.10.1 界面設計 218 7.10.2 通信層架構設計 220 7.10.3 顯示的消息格式設計 220 7.11 客戶端實現 220 7.11.1 靜態類圖 220 7.11.2 初始化 223 7.11.3 接收服務器數據 227 7.11.4 顯示離線消息 228 7.11.5 創建聊天窗口 229 7.11.6 在線聊天 231 7.11.7 發送離線消息 234 7.11.8 被動聊天 234 7.11.9 保存聊天記錄 235 7.12 小結 236 第8章 WSAEventSelect模型開發 238 8.1 套接字WSAEventSelect模型 238 8.1.1 WSAEventSelect模型 238 8.1.2 與其他模型的比較 238 8.2 套接字WSAEventSelect模型實現 239 8.2.1 WSAEventSelect()函數 239 8.2.2 WSACreateEvent()函數 240 8.2.3 WSAResetEvent()函數 241 8.2.4 WSACloseEvent()函數 241 8.2.5 WSAWaitForMultipleEvents()函數 241 8.2.6 WSAEnumNetworkEvents()函數 242 8.3 WSAEventSelect模型示例程序 244 8.3.1 CClient類 245 8.3.2 管理客戶端套接字的鏈表 245 8.3.3 定義事件對象數組等變量 246 8.3.4 創建套接字 246 8.3.5 為監聽套接字注冊網絡事件 246 8.3.6 開始監聽 247 8.3.7 等待網絡事件 247 8.3.8 獲取發生的網絡事件 247 8.3.9 FD_ACCEPT網絡事件 248 8.3.10 FD_READ網絡事件 249 8.3.11 FD_WRITE網絡事件 249 8.3.12 FD_CLOSE網絡事件 249 8.3.13 退出 250 8.4 調用WSAEventSelect()函數注意的問題 250 8.4.1 多次調用WSAEventSelect()函數 250 8.4.2 一個套接字不要關聯多個事件對象 250 8.4.3 取消為套接字注冊的網絡事件 251 8.4.4 關于accept()函數 251 8.4.5 關于FD_READ網絡事件 251 8.4.6 關于FD_WRITE網絡事件 251 8.4.7 關于FD_CLOSE網絡事件 251 8.5 WSAEventSelect模型的優勢和不足 251 8.6 網絡五子棋游戲 252 8.6.1 需求分析 252 8.6.2 游戲規則 253 8.6.3 用戶狀態設計 253 8.6.4 數據包設計 253 8.7 服務器設計 254 8.7.1 多線程設計 254 8.7.2 界面設計 255 8.8. 服務器實現 255 8.8.1 靜態類圖 255 8.8.2 初始化 260 8.8.3 啟動服務 262 8.8.4 服務器運行 264 8.8.5 接收客戶端請求 266 8.8.6 接收數據 270 8.8.7 更新用戶列表 273 8.8.8 發送用戶列表 277 8.8.9 客戶端退出 278 8.8.10 服務器退出 278 8.9 客戶端設計 279 8.9.1 多線程設計 279 8.9.2 界面設計 279 8.10 客戶端實現 281 8.10.1 靜態類圖 282 8.10.2 創建切分窗口 287 8.10.3 初始化 289 8.10.4 工作線程 294 8.10.5 與服務器通信 295 8.10.6 更新用戶列表 299 8.10.7 開始游戲 301 8.10.8 下棋 306 8.10.9 結束游戲 317 8.10.10 退出 318 8.11 小結 319 第9章 重疊I/O模型開發 320 9.1 套接字重疊I/O模型 320 9.1.1 重疊I/O模型 320 9.1.2 與其他模型的比較 321 9.2 套接字重疊I/O模型實現概述 322 9.3 Win32重疊I/O相關技術 322 9.3.1 CreateFile()函數 322 9.3.2 OVERLAPPED結構 323 9.3.3 ReadFile()函數 323 9.3.4 WriteFile()函數 324 9.3.5 GetOverlappedResult()函數 324 9.3.6 示例程序 325 9.4 套接字重疊I/O 327 9.4.1 創建套接字 327 9.4.2 接收數據 327 9.4.3 WSAOVERLAPPED結構 328 9.4.4 WSAWaitForMultipleEvents()函數 329 9.4.5 WSAGetOverlappedResult()函數 329 9.4.6 發送數據 329 9.5 事件通知 330 9.5.1 CClient類 331 9.5.2 管理客戶端的鏈表 332 9.5.3 聲明變量和函數 333 9.5.4 套接字的創建、綁定和監聽 333 9.5.5 創建服務線程 334 9.5.6 接受客戶端連接請求 334 9.5.7 服務線程 335 9.6 完成例程 336 9.6.1 CClient類 337 9.6.2 管理客戶端的鏈表 339 9.6.3 套接字的創建、綁定和監聽 339 9.6.4 接受客戶端連接請求 339 9.6.5 服務線程 340 9.7 實例開發——網絡詞典 340 9.7.1 需求分析 341 9.7.2 數據包設計 341 9.7.3 數據庫設計 342 9.8 服務器設計 342 9.8.1 多線程設計 342 9.8.2 界面設計 343 9.9 服務器實現 345 9.9.1 開發前的準備 346 9.9.2 靜態類圖 347 9.9.3 初始化 351 9.9.4 啟動服務 358 9.9.5 服務器運行 359 9.9.6 接收數據 361 9.9.7 查詢單詞含義 364 9.9.8 發送數據 366 9.9.9 查看未知單詞 367 9.9.10 數據庫操作 370 9.9.11 退出 375 9.10 客戶端設計 376 9.10.1 多線程設計 376 9.10.2 界面設計 376 9.11 客戶端實現 377 9.11.1 靜態類圖 377 9.11.2 啟動客戶端 380 9.11.3 連接服務器 381 9.11.4 工作線程 382 9.11.5 發送數據 385 9.11.6 接收數據 388 9.11.7 顯示單詞含義 390 9.11.8 退出 391 9.12 小結 391 第10章 完成端口模型開發 392 10.1 套接字完成端口模型 392 10.1.1 利用完成端口接收數據 392 10.1.2 完成端口模型 393 10.1.3 與重疊I/O模型比較 394 10.2 完成端口模型實現 395 10.2.1 創建完成端口對象 395 10.2.2 創建服務線程 396 10.2.3 套接字與完成端口關聯 397 10.2.4 發起重疊I/O操作 398 10.2.5 等待重疊I/O操作結果 399 10.2.6 取消異步操作 400 10.2.7 投遞完成通知包 400 10.3 完成端口示例程序 401 10.3.1 聲明單I/O操作數據結構 402 10.3.2 CClient類 403 10.3.3 管理客戶端的鏈表 404 10.3.4 聲明變量和函數 405 10.3.5 創建完成端口 405 10.3.6 創建服務線程 405 10.3.7 套接字的創建、綁定和監聽 405 10.3.8 套接字與完成端口關聯 406 10.3.9 發起重疊I/O操作 407 10.3.10 等待I/O操作結果 407 10.4 考試系統 409 10.4.1 需求分析 409 10.4.2 數據包設計 410 10.4.3 數據庫設計 410 10.5 服務器設計 411 10.5.1 多線程設計 411 10.5.2 界面設計 412 10.6 服務器實現 414 10.6.1 靜態類圖 414 10.6.2 初始化 419 10.6.3 啟動服務 427 10.6.4 接受客戶端請求線程 430 10.6.5 服務線程 432 10.6.6 接收客戶端數據 433 10.6.7 驗證學號 437 10.6.8 發送數據 438 10.6.9 考生交卷 440 10.6.10 跟蹤客戶端連接狀態 442 10.6.11 服務器退出 443 10.7 客戶端設計 446 10.8 客戶端實現 447 10.8.1 靜態類圖 448 10.8.2 初始化 450 10.8.3 連接服務器并接收試卷 450 10.8.4 初始化試卷頭 454 10.8.5 初始化試卷 455 10.8.6 答卷 459 10.8.7 發送心跳包 460 10.8.8 交卷 460 10.9 小結 462 993_OPEN CV 書本範例 ▲▼ OpenCV 2 计算机视觉编程手册 第 1 章接觸圖像 第 2 章操作像素 第 3 章基於類的圖像處理 第 4 章使用直方圖統計像素 第 5 章基於形態學運算的圖像變換 第 6 章圖像濾波 第 7 章提取直線、輪廓及連通區域 第 8 章檢測並匹配興趣點 第 9 章估算圖像間的投影關係 第 10 章處理視頻序列 OpenCV3編程入門 第一部分 快速上手OpenCV 1 第1 章 邂逅OpenCV 3 1 1 OpenCV 周邊概念認知 4 1 1 1 圖像處理、計算機視覺與OpenCV 4 1 1 2 OpenCV 概述 4 1 1 3 起源及發展 5 1 1 4 應用概述 6 1 2 OpenCV 基本架構分析 7 1 3 OpenCV3 帶來了什么 11 1 3 1 項目架構的改變 11 1 3 2 將OpenCV2 代碼升級到OpenCV3 報錯時的一些策略 12 1 4 OpenCV 的下載、安裝與配置 14 1 4 1 預準備:下載和安裝集成開發環境 14 1 4 2 第一步:下載和安裝OpenCV SDK 15 1 4 3 第二步:配置環境變量 16 1 4 4 第三步:工程包含(include)目錄的配置 17 1 4 5 第四步:工程庫(lib)目錄的配置 21 1 4 6 第五步:鏈接庫的配置 22 1 4 7 第六步:在Windows 文件夾下加入OpenCV 動態鏈接庫 25 1 4 8 第七步:最終測試 26 1 4 9 可能遇到的問題和解決方案 27 1 5 快速上手OpenCV 圖像處理 28 1 5 1 第一個程序:圖像顯示 29 1 5 2 第二個程序:圖像腐蝕 30 1 5 3 第三個程序:圖像模糊 31 1 5 4 第四個程序:canny 邊緣檢測 32 1 6 OpenCV 視頻操作基礎 34 1 6 1 讀取并播放視頻 34 1 6 2 調用攝像頭采集圖像 35 1 7 本章小結 38 目 錄 X 第2 章 啟程前的認知準備 39 2 1 OpenCV 官方例程引導與賞析 40 2 1 1 彩色目標跟蹤:Camshift 41 2 1 2 光流:optical flow 42 2 1 3 點追蹤:lkdemo 43 2 1 4 人臉識別:objectDetection 43 2 1 5 支持向量機引導 44 2 2 開源的魅力:編譯OpenCV 源代碼 45 2 2 1 下載安裝CMake 45 2 2 2 使用CMake 生成OpenCV 源代碼工程的解決方案 46 2 2 3 編譯OpenCV 源代碼 50 2 3 “opencv hpp”頭文件認知 53 2 4 命名規范約定 54 2 5 argc 與argv 參數解惑 56 2 5 1 初識main 函數中的argc 和argv 56 2 5 2 argc、argv 的具體含義 57 2 5 3 Visual Studio 中main 函數的幾種寫法說明 58 2 5 4 總結 59 2 6 格式輸出函數printf()簡析 59 2 6 1 格式輸出:printf()函數 59 2 6 2 示例程序:printf 函數的用法示例 60 2 7 智能顯示當前使用的OpenCV 版本 61 2 8 本章小結 61 第3 章 HighGUI 圖形用戶界面初步 63 3 1 圖像的載入、顯示和輸出到文件 64 3 1 1 OpenCV 的命名空間 64 3 1 2 Mat 類簡析 64 3 1 3 圖像的載入與顯示概述 65 3 1 4 圖像的載入:imread()函數 65 3 1 5 圖像的顯示:imshow()函數 66 3 1 6 關于InputArray 類型 67 3 1 7 創建窗口:namedWindow()函數 67 3 1 8 輸出圖像到文件:imwrite()函數 68 3 1 9 綜合示例程序:圖像的載入、顯示與輸出 70 3 2 滑動條的創建和使用 73 3 2 1 創建滑動條:createTrackbar()函數 73 3 2 2 獲取當前軌跡條的位置:getTrackbarPos()函數 76 3 3 鼠標操作 76 3 4 本章小結 80 目 錄 XI 第二部分 初探core 組件 83 第4 章 OpenCV 數據結構與基本繪圖 85 4 1 基礎圖像容器Mat 86 4 1 1 數字圖像存儲概述 86 4 1 2 Mat 結構的使用 86 4 1 3 像素值的存儲方法 88 4 1 4 顯式創建Mat 對象的七種方法 89 4 1 5 OpenCV 中的格式化輸出方法 91 4 1 6 輸出其他常用數據結構 94 4 1 7 示例程序:基礎圖像容器Mat 類的使用 95 4 2 常用數據結構和函數 95 4 2 1 點的表示:Point 類 96 4 2 2 顏色的表示:Scalar 類 96 4 2 3 尺寸的表示:Size 類 96 4 2 4 矩形的表示:Rect 類 97 4 2 5 顏色空間轉換:cvtColor()函數 98 4 2 6 其他常用的知識點 100 4 3 基本圖形的繪制 100 4 3 1 DrawEllipse()函數的寫法 101 4 3 2 DrawFilledCircle()函數的寫法 102 4 3 3 DrawPolygon()函數的寫法 102 4 3 4 DrawLine()函數的寫法 103 4 3 5 main 函數的寫法 104 4 4 本章小結 106 第5 章 core 組件進階 107 5 1 訪問圖像中的像素 108 5 1 1 圖像在內存之中的存儲方式 108 5 1 2 顏色空間縮減 108 5 1 3 LUT 函數:Look up table 操作 109 5 1 4 計時函數 110 5 1 5 訪問圖像中像素的三類方法 110 5 1 6 示例程序 114 5 2 ROI 區域圖像疊加&圖像混合 114 5 2 1 感興趣區域:ROI 115 5 2 2 線性混合操作 116 5 2 3 計算數組加權和:addWeighted()函數 117 5 2 4 綜合示例:初級圖像混合 120 目 錄 XII 5 3 分離顏色通道、多通道圖像混合 125 5 3 1 通道分離:split()函數 125 5 3 2 通道合并:merge()函數 126 5 3 3 示例程序:多通道圖像混合 127 5 4 圖像對比度、亮度值調整 131 5 4 1 理論依據 131 5 4 2 訪問圖片中的像素 131 5 4 3 示例程序:圖像對比度、亮度值調整 132 5 5 離散傅里葉變換 135 5 5 1 離散傅里葉變換的原理 135 5 5 2 dft()函數詳解 136 5 5 3 返回DFT 最優尺寸大小:getOptimalDFTSize()函數 137 5 5 4 擴充圖像邊界:copyMakeBorder()函數 137 5 5 5 計算二維矢量的幅值:magnitude()函數 138 5 5 6 計算自然對數:log()函數 138 5 5 7 矩陣歸一化:normalize()函數 138 5 5 8 示例程序:離散傅里葉變換 139 5 6 輸入輸出XML 和YAML 文件 144 5 6 1 XML 和YAML 文件簡介 144 5 6 2 FileStorage 類操作文件的使用引導 144 5 6 3 示例程序:XML 和YAML 文件的寫入 147 5 6 4 示例程序:XML 和YAML 文件的讀取 148 5 7 本章小結 150 第三部分 掌握imgproc 組件 151 第6 章 圖像處理 153 6 1 線性濾波:方框濾波、均值濾波、高斯濾波 154 6 1 1 平滑處理 154 6 1 2 圖像濾波與濾波器 154 6 1 3 線性濾波器的簡介 155 6 1 4 濾波和模糊 155 6 1 5 鄰域算子與線性鄰域濾波 155 6 1 6 方框濾波(box Filter) 156 6 1 7 均值濾波 157 6 1 8 高斯濾波 159 6 1 9 線性濾波相關OpenCV 源碼剖析 160 6 1 10 OpenCV 中GaussianBlur 函數源碼剖析 164 6 1 11 線性濾波核心API 函數 165 6 1 12 圖像線性濾波綜合示例 170 目 錄 XIII 6 2 非線性濾波:中值濾波、雙邊濾波 175 6 2 1 非線性濾波概述 175 6 2 2 中值濾波 175 6 2 3 雙邊濾波 177 6 2 4 非線性濾波相關核心API 函數 178 6 2 5 OpenCV 中的5 種圖像濾波綜合示例 181 6 3 形態學濾波(1):腐蝕與膨脹 187 6 3 1 形態學概述 187 6 3 2 膨脹 188 6 3 3 腐蝕 189 6 3 4 相關OpenCV 源碼分析溯源 190 6 3 5 相關核心API 函數講解 191 6 3 6 綜合示例:腐蝕與膨脹 195 6 4 形態學濾波(2):開運算、閉運算、形態學梯度、頂帽、黑帽 198 6 4 1 開運算 199 6 4 2 閉運算 200 6 4 3 形態學梯度 200 6 4 4 頂帽 201 6 4 5 黑帽 202 6 4 6 形態學濾波OpenCV 源碼分析溯源 203 6 4 7 核心API 函數:morphologyEx() 205 6 4 8 各形態學操作使用范例一覽 206 6 4 9 綜合示例:形態學濾波 208 6 5 漫水填充 214 6 5 1 漫水填充的定義 214 6 5 2 漫水填充法的基本思想 214 6 5 3 實現漫水填充算法:floodFill 函數 214 6 5 4 綜合示例:漫水填充 216 6 6 圖像金字塔與圖片尺寸縮放 223 6 6 1 引言 223 6 6 2 關于圖像金字塔 223 6 6 3 高斯金字塔 225 6 6 4 拉普拉斯金字塔 226 6 6 5 尺寸調整:resize()函數 227 6 6 6 圖像金字塔相關API 函數 230 6 6 7 綜合示例:圖像金字塔與圖片尺寸縮放 234 6 7 閾值化 237 6 7 1 固定閾值操作:Threshold()函數 238 6 7 2 自適應閾值操作:adaptiveThreshold()函數 239 目 錄 XIV 6 7 3 示例程序:基本閾值操作 240 6 8 本章小結 244 第7 章 圖像變換 247 7 1 基于OpenCV 的邊緣檢測 248 7 1 1 邊緣檢測的一般步驟 248 7 1 2 canny 算子 248 7 1 3 sobel 算子 253 7 1 4 Laplacian 算子 256 7 1 5 scharr 濾波器 259 7 1 6 綜合示例:邊緣檢測 262 7 2 霍夫變換 267 7 2 1 霍夫變換概述 267 7 2 2 OpenCV 中的霍夫線變換 268 7 2 3 霍夫線變換的原理 268 7 2 4 標準霍夫變換:HoughLines()函數 270 7 2 5 累計概率霍夫變換:HoughLinesP()函數 272 7 2 6 霍夫圓變換 274 7 2 7 霍夫梯度法的原理 275 7 2 8 霍夫梯度法的缺點 276 7 2 9 霍夫圓變換:HoughCircles()函數 276 7 2 10 綜合示例:霍夫變換 278 7 3 重映射 281 7 3 1 重映射的概念 281 7 3 2 實現重映射:remap()函數 282 7 3 3 基礎示例程序:基本重映射 283 7 3 4 綜合示例程序:實現多種重映射 285 7 4 仿射變換 289 7 4 1 認識仿射變換 289 7 4 2 仿射變換的求法 290 7 4 3 進行仿射變換:warpAffine()函數 291 7 4 4 計算二維旋轉變換矩陣:getRotationMatrix2D()函數 292 7 4 5 示例程序:仿射變換 292 7 5 直方圖均衡化 295 7 5 1 直方圖均衡化的概念和特點 296 7 5 2 實現直方圖均衡化:equalizeHist()函數 297 7 5 3 示例程序:直方圖均衡化 298 7 6 本章小結 300 目 錄 XV 第8 章 圖像輪廓與圖像分割修復 303 8 1 查找并繪制輪廓 304 8 1 1 尋找輪廓:findContours()函數 304 8 1 2 繪制輪廓:drawContours()函數 305 8 1 3 基礎示例程序:輪廓查找 306 8 1 4 綜合示例程序:查找并繪制輪廓 308 8 2 尋找物體的凸包 312 8 2 1 凸包 312 8 2 2 尋找凸包:convexHull()函數 313 8 2 3 基礎示例程序:凸包檢測基礎 313 8 2 4 綜合示例程序:尋找和繪制物體的凸包 315 8 3 使用多邊形將輪廓包圍 318 8 3 1 返回外部矩形邊界:boundingRect()函數 318 8 3 2 尋找最小包圍矩形:minAreaRect()函數 318 8 3 3 尋找最小包圍圓形:minEnclosingCircle()函數 318 8 3 4 用橢圓擬合二維點集:fitEllipse()函數 319 8 3 5 逼近多邊形曲線:approxPolyDP()函數 319 8 3 6 基礎示例程序:創建包圍輪廓的矩形邊界 319 8 3 7 基礎示例程序:創建包圍輪廓的圓形邊界 321 8 3 8 綜合示例程序:使用多邊形包圍輪廓 324 8 4 圖像的矩 327 8 4 1 矩的計算:moments()函數 328 8 4 2 計算輪廓面積:contourArea()函數 328 8 4 3 計算輪廓長度:arcLength()函數 328 8 4 4 綜合示例程序:查找和繪制圖像輪廓矩 329 8 5 分水嶺算法 333 8 5 1 實現分水嶺算法:watershed()函數 334 8 5 2 綜合示例程序:分水嶺算法 334 8 6 圖像修補 338 8 6 1 實現圖像修補:inpaint()函數 340 8 6 2 綜合示例程序:圖像修補 341 8 7 本章小結 343 第9 章 直方圖與匹配 345 9 1 圖像直方圖概述 346 9 2 直方圖的計算與繪制 347 9 2 1 計算直方圖:calcHist()函數 347 9 2 2 找尋最值:minMaxLoc()函數 348 9 2 3 示例程序:繪制H—S 直方圖 348 目 錄 XVI 9 2 4 示例程序:計算并繪制圖像一維直方圖 350 9 2 5 示例程序:繪制RGB 三色直方圖 352 9 3 直方圖對比 355 9 3 1 對比直方圖:compareHist()函數 355 9 3 2 示例程序:直方圖對比 356 9 4 反向投影 360 9 4 1 引言 360 9 4 2 反向投影的工作原理 360 9 4 3 反向投影的作用 361 9 4 4 反向投影的結果 361 9 4 5 計算反向投影:calcBackProject()函數 361 9 4 6 通道復制:mixChannels()函數 362 9 4 7 綜合程序:反向投影 363 9 5 模板匹配 367 9 5 1 模板匹配的概念與原理 367 9 5 2 實現模板匹配:matchTemplate()函數 367 9 5 3 綜合示例:模板匹配 369 9 6 本章小結 373 第四部分 深入feature2d 組件 375 第10 章 角點檢測 377 10 1 Harris 角點檢測 378 10 1 1 興趣點與角點 378 10 1 2 角點檢測 378 10 1 3 harris 角點檢測 379 10 1 4 實現Harris 角點檢測:cornerHarris()函數 379 10 1 5 綜合示例:harris 角點檢測與繪制 381 10 2 Shi-Tomasi 角點檢測 384 10 2 1 Shi-Tomasi 角點檢測概述 384 10 2 2 確定圖像強角點:goodFeaturesToTrack()函數 384 10 2 3 綜合示例:Shi-Tomasi 角點檢測 385 10 3 亞像素級角點檢測 388 10 3 1 背景概述 388 10 3 2 尋找亞像素角點:cornerSubPix()函數 389 10 3 3 綜合示例:亞像素級角點檢測 389 10 4 本章小結 392 第11 章 特征檢測與匹配 395 11 1 SURF 特征點檢測 396 目 錄 XVII 11 1 1 SURF 算法概覽 396 11 1 2 SURF 算法原理 396 11 1 3 SURF 類相關OpenCV 源碼剖析 400 11 1 4 繪制關鍵點:drawKeypoints()函數 401 11 1 5 KeyPoint 類 402 11 1 6 示例程序:SURF 特征點檢測 402 11 2 SURF 特征提取 405 11 2 1 繪制匹配點:drawMatches()函數 405 11 2 2 BruteForceMatcher 類源碼分析 407 11 2 3 示例程序:SURF 特征提取 408 11 3 使用FLANN 進行特征點匹配 410 11 3 1 FlannBasedMatcher 類的簡單分析 410 11 3 2 找到最佳匹配:DescriptorMatcher::match 方法 411 11 3 3 示例程序: 使用FLANN 進行特征點匹配 411 11 3 4 綜合示例程序:FLANN 結合SURF 進行關鍵點的描述和匹配 413 11 3 5 綜合示例程序:SIFT 配合暴力匹配進行關鍵點描述和提取 417 11 4 尋找已知物體 420 11 4 1 尋找透視變換:findHomography()函數 421 11 4 2 進行透視矩陣變換:perspectiveTransform()函數 421 11 4 3 示例程序: 尋找已知物體 422 11 5 ORB 特征提取 425 11 5 1 ORB 算法概述 425 11 5 2 相關概念認知 425 11 5 3 ORB 類相關源碼簡單分析 426 11 5 4 示例程序:ORB 算法描述與匹配 426 11 6 本章小結 430 附錄 433 A1 配套示例程序清單 433 A2 隨書額外附贈的程序一覽 436 A3 書本核心函數清單 439 A4 Mat 類函數一覽 442 A4 1 構造函數:Mat::Mat 442 A4 2 析構函數Mat::~Mat 444 A4 3 Mat 類成員函數 444 主要參考文獻 447 opencv實例精解 譯者序 前言 第1章OpenCV的探險之旅1 1.1理解人類視覺系統1 1.2人類是怎麼理解圖像內容的3 1.3 OpenCV可以做什麼4 1.4安裝OpenCV 11 1.5總結14 第2章OpenCV基礎知識介紹15 2.1 CMake基本配置文件15 2.2創建庫16 2.3管理依賴關係17 2.4腳本複雜化19 2.5圖像和矩陣21 2.6讀寫圖像23 2.7讀取視頻和攝像頭27 2.8其他基本對像類型30 2.9矩陣的基本運算33 2.10基本數據持久性和存儲36 2.11總結38 第3章圖形用戶界面和基本濾波39 3.1介紹OpenCV的用戶界面39 3.2使用OpenCV實現基本圖形用戶界面40 3.3 QT的圖形用戶界面45 3.4在界面上添加滑動條和鼠標事件47 3.5在用戶界面上添加按鈕51 3.6支持OpenGL 55 3.7總結60 第4章深入研究直方圖和濾波器61 4.1生成CMake腳本文件62 4.2創建圖形用戶界面63 4.3繪製直方圖65 4.4圖像色彩均衡化69 4.5 LOMO效果71 4.6卡通效果76 4.7總結80 第5章自動光學檢測、目標分割和檢測81 5.1隔離場景中的目標82 5.2創建AOI應用程序84 5.3輸入圖像的預處理86 5.4分割輸入圖像92 5.5總結101 第6章學習目標分類102 6.1介紹機器學習的概念103 6.2計算機視覺和機器學習的工作流程106 6.3自動檢測目標分類的示例108 6.4特徵提取110 6.5總結120 第7章識別人臉部分並覆蓋面具121 7.1理解Haar級聯121 7.2積分圖123 7.3在實時視頻中覆蓋上面具124 7.4戴上太陽鏡127 7.5跟蹤鼻子、嘴和耳朵130 7.6總結131 第8章視頻監控、背景建模和形態學操作132 8.1理解背景差分132 8.2簡單背景差分法133 8.3幀差值法137 8.4混合高斯方法141 8.5形態學圖像操作144 8.6圖像細化145 8.7圖像加粗146 8.8其他形態學運算147 8.9總結152 第9章學習對象跟蹤153 9.1跟蹤特定顏色的對象153 9.2建立交互式對象跟蹤器156 9.3使用Harris角點檢測器檢測點161 9.4 Shi-Tomasi角點檢測器163 9.5基於特徵的跟蹤166 9.6總結175 第10章文本識別中的分割算法176 10.1 OCR簡介176 10.2預處理步驟178 10.3在你的操作系統上安裝Tesseract OCR 186 10.4使用Tesseract OCR庫190 10.5總結195 第11章使用Tesseract識別文本196 11.1文本識別API工作原理196 11.2使用文本識別API 200 11.3總結212 基於OPEN CV 的計算機視覺技術實現 第一章 使用OpenCV實現計算機視覺技術 1.1 計算機視覺技術 1.2 什么是OpenCV 1.3 基于OpenCV庫的編程方法 本章小結 第二章 OpenCV的編程環境 2.1 OpenCV環境介紹 2.2 OpenCV的體系結構 2.3 OpenCV實例演示 本章小結 第三章 OpenCV編程風格 3.1 命名約定 3.2 結構 3.3 函數接口設計 3.4 函數實現 3.5 代碼布局 3.6 移植性 3.7 文件操作 3.8 文檔編寫 本章小結 第四章 數據結構 4.1 基本數據結構 4.2 數組有關的操作 4.3 動態結構 本章小結 第五章 數據交互 5.1 繪圖函數 5.2 文件存儲 5.3 運行時類型信息和通用函數 5.4 錯誤處理函數 5.5 系統函數 本章小結 第六章 圖像處理 6.1 邊緣檢測 6.2 直方圖 6.3 Hough變換 6.4 幾何變換 6.5 形態學 本章小結 第七章 結構與識別 7.1 輪廓處理函數 7.2 計算幾何 7.3 平面劃分 7.4 目標檢測函數 7.5 生成與控制貝塞爾曲線 7.6 用OpenCV進行人臉檢測 本章小結 第八章 圖形界面(HighGUI) 8.1 讀取和保存圖像 8.2 OpenCV中的實用系統函數 本章小結 第九章 視頻處理(CvCAM) 9.1 使用HighGUI對視頻進行讀寫處理 9.2 CvCam對攝像頭和視頻流的使用 本章小結 第十章 OpenCV附加庫第一部分 10.1 附加庫介紹 10.2 形態學(morhing functions) 本章小結 第十一章 OpenCV附加庫第二部分——隱馬爾可夫模型 11.1 隱馬爾可夫模型概述 11.2 隱馬爾可夫模型中的基本結構與函數介紹 11.3 隱馬爾可夫模型中的函數介紹 11.4 人臉識別工具 本章小結 第十二章 核心庫綜合例程 12.1 檢測黑白格標定板內指定矩形區域內的角點 12.2 解線性標定方程組程序 本章小結 第十三章 運動與跟蹤 13.1 圖像統計的累積函數 13.2 運動模板函數 13.3 對象跟蹤 13.4 光流 13.5 預估器 13.6 Kalman濾波器跟蹤示例 13.7 用Snake方法檢測可變形體的輪廓 13.8 運動目標跟蹤與檢測 本章小結 第十四章 立體視覺第一部分——照相機定標 14.1 坐標系介紹 14.2 透視投影矩陣的獲得 14.3 攝像機參數的獲取 14.4 徑向畸變的校正 14.5 使用OpenCV及CVUT進行攝像機定標 14.6 OpenCV中的定標函數 14.7 CVUT介紹 本章小結 第十五章 立體視覺第二部分——三維重建 15.1 極線幾何 15.2 特征點匹配 15.3 三維重建 15.4 OpenCV中相關函數介紹 本章小結 第十六章 立體視覺第三部分——三維重建算法 16.1 圖像校正 16.2 已校正圖像的快速三維重建 16.3 Birchfield算法 16.4 OpenCV中相關函數介紹 本章小結 第十七章 立體視覺第四部分——立體視覺實例 17.1 圖像校正實例代碼 17.2 基于窗口的稀疏點匹配及三維重建之一 17.3 基于窗口的稀疏點匹配及三維重建之二 17.4 Birchfield算法的OpenCV實現 本章小結 第十八章 常見問題解疑 18.1 安裝與編譯出錯解決方法 18.2 OpenCV庫基本技術問題 18.3 OpenCV在Linux下的相關問題 18.4 OpenCV庫中的陷阱和bug 本章小結 參考文獻 學習OPEN CV 第1章 概述 1 什麼是OpenCV 1 OpenCV的應用領域 1 什麼是計算機視覺 2 OpenCV的起源 6 下載和安裝OpenCV 8 通過SVN獲取最新的OpenCV代碼 11 更多OpenCV文檔 12 OpenCV的結構和內容 14 移植性 16 練習 16 第2章 OpenCV入門 18 開始準備 18 初試牛刀—— 顯示圖像 19 第二個程式—— 播放AVI視頻 21 視頻播放控制 23 一個簡單的變換 26 一個復雜一點的變換 28 從攝像機讀入數據 30 寫入AVI視頻文件 31 小結 33 練習 34 第3章 初探OpenCV 35 OpenCV的基本數據類型 35 CvMat矩陣結構 38 IplImage數據結構 48 矩陣和圖像操作 54 繪圖 91 數據存儲 98 集成性能基元 102 小結 103 練習 103 第4章 細說HighGUI 106 一個可移植的圖形工具包 106 創建窗口 107 載入圖像 108 顯示圖像 110 視頻的處理 120 ConvertImage函數 125 練習 126 第5章 圖像處理 128 綜述 128 平滑處理 128 圖像形態學 134 漫水填充演算法 146 尺寸調整 149 圖像金字塔 150 閾值化 155 練習 162 第6章 圖像變換 165 概述 165 卷積 165 梯度和Sobel導數 169 拉普拉斯變換 172 Canny運算元 173 霍夫變換 175 重映射 183 拉伸、收縮、扭曲和旋轉 185 CartToPolar與PolarToCart 196 LogPolar 197 離散傅裡葉變換(DFT) 200 離散余弦變換(DCT) 205 積分圖像 206 距離變換 208 直方圖均衡化 211 練習 213 第7章 直方圖與匹配 216 直方圖的基本數據結構 219 訪問直方圖 221 直方圖的基本操作 223 一些更復雜的策略 231 練習 244 第8章 輪廓 246 內存 246 序列 248 查找輪廓 259 Freeman鏈碼 266 輪廓例子 268 另一個輪廓例子 270 深入分析輪廓 271 輪廓的匹配 279 練習 290 第9章 圖像局部與分割 293 局部與分割 293 背景減除 294 分水嶺演算法 328 用Inpainting修補圖像 329 均值漂移分割 331 Delaunay三角剖分和Voronoi 劃分 333 練習 347 第10章 跟蹤與運動 350 跟蹤基礎 350 尋找角點 351 亞圖元級角點 353 不變特徵 355 光流 356 mean-shift和camshift跟蹤 371 運動範本 376 預估器 383 condensation演算法 399 練習 403 第11章 攝像機模型與標定 406 攝像機模型 407 標定 414 矯正 430 一次完成標定 432 羅德里格斯變換 437 練習 438 第12章 投影與三維視覺 441 投影 441 仿射變換和透視變換 443 POSIT:3D姿態估計 449 立體成像 452 來自運動的結構 493 二維和三維下的直線擬合 494 練習 498 第13章 機器學習 499 什麼是機器學習 499 OpenCV機器學習演算法 502 Mahalanobis距離 516 K均值 519 樸素貝葉斯分類 524 二叉決策樹 527 boosting 537 隨機森林 543 人臉識別和Haar分類器 549 其他機器學習演算法 559 練習 560 第14章 OpenCV的未來 564 過去與未來 564 發展方向 565 OpenCV與藝術家 568 後記 570 994_Visual C++.NET小遊戲開發時尚編程百例 ▲▼ 第一篇 小遊戲初步 實例1 "皇后"排列 實例2 數位遊戲 實例3 石頭、剪刀、布 實例4 自動隨機出題 實例5 火炮 實例6 控制power鍵 實例7 調用控制台 實例8 框架 實例9 設置全域熱鍵 實例10 中獎刮刮樂 實例11 小屏保 實例12 無限星空人機交互 實例13 無限星空星星閃 實例14 倒計時 實例15 小日曆 第二篇 智力遊戲 實例16 智力魔方人機界面 實例17 智力魔方組件 實例18 拼圖人機界面 實例19 拼圖元件 實例20 趣味繪圖 實例21 點燈人機交互 實例22 點燈元件 實例23 單人跳棋人機交互 實例24 單人跳棋組件 實例25 小迷宮 第三篇 經典遊戲 實例26 紙牌人機交互 實例27 紙牌元件 實例28 彈珠 實例29 類比正態分佈 實例30 撿金豆人機交互 實例31 撿金豆組件 實例32 撿金豆初始化 實例33 華容道人機交互 實例34 華容道組件 實例35 象棋麻將 實例36 趣味圖畫人機交互 實例37 趣味圖畫元件 實例39 掃雷 實例40 掃雷初始化 實例41 ufo攻擊遊戲 實例42 ufo發射器 實例43 俄羅斯方塊 實例44 數位魔方人機交互 實例45 數位魔方元件 實例46 貪吃蛇人機交互 實例47 貪吃蛇組件 第四篇 對抗遊戲 實例48 21點 實例49 機智加分人機交互 實例50 機智加分組件 實例51 黑白棋人機交互 實例52 黑白棋元件 實例53 三子棋人機交互 實例54 三子棋組件 實例55 五子連線 實例56 智慧黑白棋人機交互 實例57 智慧黑白棋組件 實例58 小球射門 實例59 射門戰績 第五篇 控制類遊戲 實例60 飛行器著陸人機交互 實例61 飛行器著陸元件 實例62 超級放大鏡人機交互 實例63 超級放大鏡元件 實例64 神奇畫筆人機交互 實例65 神奇畫筆元件 實例66 彈性小球人機交互 實例67 彈性小球元件 實例68 拯救地球人機交互 實例69 拯救地球元件 實例70 消滅害蟲人機交互 實例71 消滅害蟲元件 實例72 射擊 實例73 打地鼠 實例74 打字練習 實例75 空間大戰人機交互 實例76 空間大戰元件 第六篇 趣味遊戲 實例77 陰陽縮放 實例78 叫床時鐘 實例79 五彩同心圓 實例80 桌面晃動 實例81 桌面下面的奧秘介面 實例82 桌面下面的奧秘內核 實例83 滑鼠放大人機交互 實例84 滑鼠放大元件 實例85 點你就是點我 實例86 隱藏時鐘 實例87 做朋友 實例88 鎖定滑鼠 實例89 擲骰子 實例90 桌面小精靈人機交互 實例91 桌面小精靈組件 實例92 小畫筆 實例93 考考你的觀察力介面 實例94 考考你的觀察力內核 實例95 停車檢查 實例96 生日屬性 實例97 萬花規 實例98 吊小人 實例99 點我 實例100 定制形狀 截圖: 995_開發典型模塊大全 ▲▼ 第1章 Visual C++ 6.0開發環境 1 1.1 Visual C++ 6.0介紹 2 1.1.1 Visual C++ 6.0概述 2 1.1.2 Visual C++ 6.0特性 2 1.2 Visual C++ 6.0開發環境介紹 2 1.3 Visual C++ 6.0菜單介紹 3 1.3.1 File菜單 4 1.3.2 Edit菜單 4 1.3.3 View菜單 5 1.3.4 Insert菜單 5 1.3.5 Project菜單 6 1.3.6 Build菜單 6 1.3.7 Layout菜單 6 1.3.8 Tools菜單 7 1.3.9 Window菜單 8 1.3.10 Help菜單 8 1.4 Visual C++ 6.0工具欄介紹 8 1.4.1 Standard工具欄 9 1.4.2 Build MiniBar工具欄 9 1.4.3 Debug工具欄 10 1.5 工作區介紹 11 1.5.1 ClassView選項卡 11 1.5.2 ResourceView選項卡 11 1.5.3 FileView選項卡 12 1.6 編輯器窗口介紹 12 1.7 輸出窗口介紹 13 1.8 開發環境使用技巧 13 1.8.1 定制工具欄 13 1.8.2 從其他文件中抓取資源 14 1.8.3 使用源代碼瀏覽工具 15 1.8.4 刪除工程中的類 15 1.8.5 在類向導中處理沒有發現的窗口消息 15 1.8.6 完全取詞功能不可用 16 1.8.7 判斷代碼中的括號是否匹配 16 1.8.8 對齊零亂的代碼 16 1.9 調試窗口 16 1.9.1 利用Watch調試窗口查看對象信息 16 1.9.2 利用Call Stack窗口查看函數調用信息 17 1.9.3 利用Memory窗口查看內存信息 17 1.9.4 利用Variables窗口查看變量信息 18 1.9.5 利用Registers窗口查看CPU寄存器信息 18 1.9.6 利用Disassembly窗口查看匯編信息 19 第2章 Visual C++編程基礎 21 2.1 C++語言基礎 22 2.1.1 語句 22 2.1.2 函數 27 2.1.3 類和對象 30 2.2 對話框程序設計 35 2.2.1 構建對話框應用程序 35 2.2.2 創建和顯示對話框 38 2.2.3 對話框屬性設置 42 2.2.4 對話框界面布局 43 2.2.5 添加控件成員變量 46 2.2.6 向對話框中添加成員函數 48 2.3 菜單和工具欄設計 49 2.3.1 菜單設計 49 2.3.2 工具欄設計 63 2.4 小結 70 第3章 圖像處理模塊 71 3.1 圖像處理模塊概述 72 3.1.1 模塊概述 72 3.1.2 功能結構 72 3.1.3 模塊預覽 72 3.2 關鍵技術 75 3.2.1 位圖數據的存儲形式 75 3.2.2 任意角度旋轉圖像 77 3.2.3 實現圖像縮放 79 3.2.4 在Visual C++中使用GDI+進行圖像處理 80 3.2.5 實現圖像的水印效果 81 3.2.6 瀏覽PSD文件 81 3.2.7 利用滾動窗口瀏覽圖片 83 3.2.8 使用子對話框實現圖像的局部選擇 85 3.3 圖像旋轉模塊設計 88 3.3.1 概述 88 3.3.2 界面布局 89 3.3.3 實現過程 89 3.4 圖像平移模塊設計 94 3.4.1 概述 94 3.4.2 界面布局 95 3.4.3 實現過程 95 3.5 圖像縮放模塊設計 99 3.5.1 概述 99 3.5.2 界面布局 99 3.5.3 實現過程 100 3.6 圖像水印效果模塊設計 103 3.6.1 概述 103 3.6.2 界面布局 104 3.6.3 實現過程 104 3.7 位圖轉換為JPEG模塊設計 106 3.7.1 概述 106 3.7.2 界面布局 106 3.7.3 實現過程 106 3.8 PSD文件瀏覽模塊設計 110 3.8.1 概述 110 3.8.2 界面布局 110 3.8.3 實現過程 111 3.9 照片版式處理模塊設計 113 3.9.1 概述 113 3.9.2 界面布局 114 3.9.3 實現過程 114 第4章 辦公助手模塊 121 4.1 辦公助手模塊概述 122 4.1.1 模塊概述 122 4.1.2 功能結構 122 4.1.3 模塊預覽 122 4.2 關鍵技術 123 4.2.1 如QQ般自動隱藏 123 4.2.2 按需要設計文本框 124 4.2.3 設計計算器的圓角按鈕 126 4.2.4 回行數據在INI文件中的讀取與寫入 127 4.2.5 根據數據庫數據生成復選框 128 4.2.6 餅形圖顯示投票結果 129 4.3 主窗體設計 130 4.3.1 概述 130 4.3.2 界面布局 131 4.3.3 實現過程 131 4.4 計算器設計 133 4.4.1 概述 133 4.4.2 界面布局 133 4.4.3 實現過程 134 4.5 便利貼設計 138 4.5.1 概述 138 4.5.2 界面布局 138 4.5.3 實現過程 139 4.6 加班模塊設計 141 4.6.1 概述 141 4.6.2 界面布局 142 4.6.3 實現過程 142 4.7 投票項目模塊設計 145 4.7.1 概述 145 4.7.2 界面布局 145 4.7.3 實現過程 146 第5章 桌面精靈模塊 149 5.1 桌面精靈模塊概述 150 5.1.1 模塊概述 150 5.1.2 功能結構 150 5.1.3 模塊預覽 150 5.2 關鍵技術 151 5.2.1 陽歷轉換成陰歷的算法 151 5.2.2 時鐘的算法 154 5.2.3 實現鼠標穿透 156 5.2.4 窗體置頂及嵌入桌面 156 5.2.5 添加系統托盤 156 5.2.6 開機自動運行 158 5.2.7 自繪右鍵彈出菜單 158 5.2.8 帶圖標的按鈕控件 162 5.3 主窗體設計 163 5.3.1 概述 163 5.3.2 界面設計 164 5.3.3 實現過程 164 5.4 新建備忘錄模塊設計 170 5.4.1 概述 170 5.4.2 界面設計 171 5.4.3 實現過程 171 5.5 新建紀念日模塊設計 174 5.5.1 概述 174 5.5.2 界面設計 175 5.5.3 實現過程 175 5.6 紀念日列表模塊設計 178 5.6.1 概述 178 5.6.2 界面設計 178 5.6.3 實現過程 178 5.7 窗口設置模塊設計 181 5.7.1 概述 181 5.7.2 界面設計 182 5.7.3 實現過程 182 5.8 提示窗口模塊設計 183 5.8.1 概述 183 5.8.2 界面設計 184 5.8.3 實現過程 184 第6章 企業通信模塊 189 6.1 企業通信模塊概述 190 6.1.1 模塊概述 190 6.1.2 功能結構 190 6.1.3 模塊預覽 190 6.2 關鍵技術 192 6.2.1 設計支持QQ表情的ATL控件 192 6.2.2 向CRichEditCtrl控件中插入ATL控件 200 6.2.3 向CRichEditCtrl控件中插入ATL控件 202 6.2.4 使用XML文件實現組織結構的客戶端顯示 202 6.2.5 在樹控件中利用節點數據標識節點的類型(部門信息、男職員、女職員) 203 6.2.6 定義數據包結構,實現文本、圖像等文件的發送與顯示 204 6.2.7 數據包粘包的簡單處理 205 6.2.8 實現客戶端掉線的自動登錄 206 6.3 服務器主窗體設計 207 6.3.1 概述 207 6.3.2 界面布局 207 6.3.3 實現過程 208 6.4 部門設置模塊設計 210 6.4.1 概述 210 6.4.2 界面布局 211 6.4.3 實現過程 211 6.5 賬戶設置模塊設計 214 6.5.1 概述 214 6.5.2 界面布局 214 6.5.3 實現過程 215 6.6 客戶端主窗體設計 218 6.6.1 概述 218 6.6.2 界面布局 218 6.6.3 實現過程 219 6.7 登錄模塊設計 223 6.7.1 概述 223 6.7.2 界面布局 224 6.7.3 實現過程 224 6.8 信息發送窗體模塊設計 227 6.8.1 概述 227 6.8.2 界面布局 228 6.8.3 實現過程 228 第7章 媒體播放器模塊 233 7.1 媒體播放器模塊概述 234 7.1.1 模塊概述 234 7.1.2 模塊預覽 234 7.2 關鍵技術 235 7.2.1 如何使用DirectShow開發包 235 7.2.2 使用DirectShow開發程序的方法 236 7.2.3 使用DirectShow如何確定媒體文件播放完成 237 7.2.4 使用DirectShow進行音量和播放進度的控制 238 7.2.5 使用DirectShow實現字幕疊加 239 7.2.6 使用DirectShow實現亮度、飽和度和對比度調節 241 7.2.7 設計顯示目錄和文件的樹視圖控件 241 7.3 媒體播放器主窗體設計 245 7.3.1 概述 245 7.3.2 界面布局 245 7.3.3 實現過程 246 7.4 視頻顯示窗體設計 255 7.4.1 概述 255 7.4.2 界面布局 255 7.4.3 實現過程 255 7.5 字幕疊加窗體設計 256 7.5.1 概述 256 7.5.2 界面布局 256 7.5.3 實現過程 257 7.6 視頻設置窗體設計 259 7.6.1 概述 259 7.6.2 界面布局 259 7.6.3 實現過程 259 7.7 文件播放列表窗體設計 262 7.7.1 概述 262 7.7.2 界面布局 263 7.7.3 實現過程 263 第8章 屏幕錄像模塊 269 8.1 屏幕錄像模塊概述 270 8.1.1 模塊概述 270 8.1.2 功能結構 270 8.2 關鍵技術 270 8.2.1 屏幕抓圖 270 8.2.2 抓圖時抓取鼠標 271 8.2.3 將位圖數據流寫入AVI文件 271 8.2.4 將AVI文件轉換成位圖數據 275 8.2.5 獲得AVI文件屬性 276 8.2.6 根據運行狀態顯示托盤圖標 277 8.2.7 獲得磁盤的剩余空間 278 8.2.8 動態生成錄像文件名 278 8.3 主窗體設計 279 8.3.1 概述 279 8.3.2 界面設計 280 8.3.3 功能實現 281 8.4 錄像截取模塊設計 289 8.4.1 概述 289 8.4.2 界面設計 290 8.4.3 功能實現 290 8.5 錄像合成模塊設計 295 8.5.1 概述 295 8.5.2 界面設計 295 8.5.3 功能實現 295 第9章 計算機監控模塊 299 9.1 計算機監控模塊概述 300 9.1.1 開發背景 300 9.1.2 需求分析 300 9.1.3 模塊預覽 300 9.2 關鍵技術 301 9.2.1 獲取屏幕設備上下文存儲為位圖數據流 301 9.2.2 將位圖數據流壓縮為JPEG數據流 302 9.2.3 將JPEG數據流分成多個數據包發送到服務器 302 9.2.4 將多個數據包組合為一個完整的JPEG數據流 303 9.2.5 根據JPEG數據流顯示圖像 304 9.2.6 雙擊實現窗口全屏顯示 304 9.3 客戶端主窗體設計 305 9.3.1 概述 305 9.3.2 實現過程 305 9.4 服務器端主窗體設計 310 9.4.1 概述 310 9.4.2 實現過程 310 9.5 遠程控制窗體設計 313 9.5.1 概述 313 9.5.2 界面布局 314 9.5.3 實現過程 314 第10章 考試管理模塊 317 10.1 考試管理模塊概述 318 10.1.1 考試管理模塊概述 318 10.2 關鍵技術 318 10.2.1 在主窗口顯示之前顯示登錄窗口 318 10.2.2 隨機抽題算法 319 10.2.3 文本框控件設置背景圖片 320 10.2.4 顯示歡迎窗口 320 10.2.5 計時算法 321 10.2.6 保存答案算法 322 10.2.7 工具欄按鈕提示功能實現 322 10.2.8 圖標按鈕的實現 323 10.3 數據庫設計 325 10.3.1 數據庫分析 325 10.3.2 設計表結構 325 10.4 學生前臺考試模塊 326 10.4.1 學生考試功能實現 326 10.4.2 學生查分功能實現 336 10.5 教師后臺管理模塊 339 10.5.1 后臺管理主窗口 339 10.5.2 學生信息管理功能實現 342 10.5.3 試題管理功能實現 346 10.5.4 學生分數查詢功能實現 351 第11章 SQL數據庫提取器模塊 359 11.1 SQL數據庫提取器概述 360 11.1.1 模塊概述 360 11.1.2 功能結構 360 11.2 關鍵技術 360 11.2.1 獲得數據表、視圖和存儲過程 360 11.2.2 獲得表結構 361 11.2.3 向WORD文檔中插入表格 361 11.2.4 向WORD表格中插入圖片 362 11.2.5 向EXCEL表格中插入圖片 363 11.2.6 使用bcp實用工具導出數據 363 11.3 主窗體設計 365 11.3.1 概述 365 11.3.2 界面設計 366 11.3.3 功能實現 366 11.4 附加數據庫模塊設計 373 11.4.1 概述 373 11.4.2 界面設計 373 11.4.3 功能實現 373 11.5 備份數據庫模塊設計 375 11.5.1 概述 375 11.5.2 界面設計 376 11.5.3 功能實現 376 11.6 數據導出模塊設計 377 11.6.1 概述 377 11.6.2 界面設計 378 11.6.3 功能實現 378 11.7 配置ODBC數據源模塊設計 384 11.7.1 概述 384 11.7.2 界面設計 384 11.7.3 功能實現 385 第12章 萬能打印模塊 387 12.1 萬能打印模塊概述 388 12.2 關鍵技術 388 12.2.1 滾動條設置 388 12.2.2 打印中的頁碼計算和分頁預覽功能算法 390 12.2.3 數據庫查詢功能 392 12.2.4 打印控制功能 393 12.2.5 如何解決屏幕和打印機分辨率不統一問題 395 12.2.6 打印新一頁 395 12.3 主窗體設計 395 12.3.1 功能概述 395 12.3.2 設計思路 396 12.3.3 實現過程 396 12.4 Access數據庫選擇窗體 400 12.4.1 功能概述 400 12.4.2 設計思路 401 12.4.3 實現過程 401 12.5 SQL Server數據庫選擇窗體 403 12.5.1 功能概述 403 12.5.2 設計思路 403 12.5.3 實現過程 404 12.6 數據庫查詢模塊 407 12.6.1 功能概述 407 12.6.2 設計思路 408 12.6.3 實現過程 408 12.7 打印設置模塊 410 12.7.1 功能概述 410 12.7.2 設計思路 411 12.7.3 實現過程 411 12.8 打印預覽及打印模塊 416 12.8.1 功能概述 416 12.8.2 設計思路 416 12.8.3 實現過程 417 第13章 FTP文件上傳下載模塊 429 13.1 FTP文件上傳下載模塊概述 430 13.1.1 開發背景 430 13.1.2 需求分析 430 13.1.3 模塊預覽 430 13.2 關鍵技術 432 13.2.1 設計類似于資源管理器的列表視圖控件 432 13.2.2 登錄FTP服務器 443 13.2.3 實現FTP目錄瀏覽 443 13.2.4 多任務下載FTP文件 445 13.2.5 在任務列表中暫停、取消某一任務 450 13.2.6 利用鼠標拖曳實現文件的上傳下載 450 13.2.7 直接創建多級目錄 452 13.2.8 根據文件擴展名獲取文件的系統圖標 452 13.2.9 關閉工具欄時取消菜單項的復選標記 453 13.3 主窗體設計 454 13.3.1 概述 454 13.3.2 界面布局 454 13.3.3 實現過程 455 13.4 登錄信息欄設計 458 13.4.1 概述 458 13.4.2 界面布局 458 13.4.3 實現過程 458 13.5 工具欄窗體設計 459 13.5.1 概述 459 13.5.2 界面布局 459 13.5.3 實現過程 460 13.6 本地信息窗體設計 470 13.6.1 概述 470 13.6.2 界面布局 471 13.6.3 實現過程 471 13.7 遠程FTP服務器信息窗體設計 474 13.7.1 概述 474 13.7.2 界面布局 474 13.7.3 實現過程 475 13.8 任務列表窗體設計 476 13.8.1 概述 476 13.8.2 界面布局 477 13.8.3 實現過程 477 第14章 電子郵件模塊 481 14.1 電子郵件模塊概述 482 14.1.1 模塊概述 482 14.1.2 功能結構 482 14.1.3 模塊預覽 482 14.2 關鍵技術 484 14.2.1 Jmail組件的注冊 484 14.2.2 繪制帶背景的工具欄 484 14.2.3 自繪工具欄下拉菜單 485 14.2.4 動態生成工具欄下拉菜單 488 14.2.5 郵件的分頁顯示 489 14.2.6 聲明MAPI函數原型 490 14.2.7 使用MAPI發送郵件 490 14.2.8 使用MAPI發送帶附件的郵件 491 14.2.9 使用Jmail組件接收郵件 492 14.2.10 自繪熱點按鈕 493 14.3 郵件服務配置 494 14.3.1 SMTP和POP3簡介 494 14.3.2 安裝和配置郵件服務器 494 14.3.3 安裝和配置POP3服務器 497 14.4 主窗體設計 498 14.4.1 概述 498 14.4.2 界面布局 498 14.4.3 功能實現 499 14.5 寫郵件模塊設計 502 14.5.1 概述 502 14.5.2 界面布局 503 14.5.3 功能實現 503 14.6 草稿箱設計 508 14.6.1 概述 508 14.6.2 界面布局 509 14.6.3 功能實現 509 14.7 收件箱設計 513 14.7.1 概述 513 14.7.2 界面布局 513 14.7.3 功能實現 514 14.8 讀郵件設計 519 14.8.1 概述 519 14.8.2 界面布局 520 14.8.3 功能實現 520 14.9 通訊錄設計 521 14.9.1 概述 521 14.9.2 界面布局 522 14.9.3 功能實現 523 第15章 網絡五子棋模塊 527 15.1 網絡五子棋模塊概述 528 15.1.1 概述 528 15.1.2 模塊預覽 528 15.2 關鍵技術 529 15.2.1 使用TCP協議進行網絡通信 529 15.2.2 定義網絡通信協議 530 15.2.3 實現動態調整棋盤大小 531 15.2.4 在棋盤中繪制棋子 533 15.2.5 五子棋贏棋判斷 535 15.2.6 設計游戲悔棋功能 538 15.2.7 設計游戲回放功能 540 15.2.8 對方網絡狀態測試 543 15.3 服務器端主窗體設計 544 15.3.1 概述 544 15.3.2 界面布局 545 15.3.3 實現過程 545 15.4 服務器設置窗體設計 547 15.4.1 概述 547 15.4.2 界面布局 547 15.4.3 實現過程 547 15.5 棋盤窗體設計 548 15.5.1 概述 548 15.5.2 界面布局 549 15.5.3 實現過程 549 15.6 游戲控制窗體設計 562 15.6.1 概述 562 15.6.2 界面布局 563 15.6.3 實現過程 563 15.7 對方信息窗體設計 565 15.7.1 概述 565 15.7.2 界面布局 566 15.7.3 實現過程 566 15.8 客戶端主窗體設計 567 15.8.1 概述 567 15.8.2 界面布局 568 15.8.3 實現過程 568 第16章 軟件注冊模塊 571 16.1 軟件注冊模塊概述 572 16.1.1 模塊概述 572 16.1.2 操作流程 572 16.2 關鍵技術 572 16.2.1 獲取CPU序列號 572 16.2.2 獲得磁盤序列號 573 16.2.3 獲得網卡地址 573 16.2.4 生成注冊碼 574 16.2.5 根據注冊表中的數據限制試用次數 574 16.2.6 注冊快捷鍵 575 16.2.7 一次性粘貼注冊碼 576 16.3 注冊碼生成器設計 577 16.3.1 概述 577 16.3.2 界面設計 577 16.3.3 功能實現 578 16.4 主窗體設計 580 16.4.1 概述 580 16.4.2 界面設計 580 16.4.3 功能實現 580 16.5 注冊模塊設計 581 16.5.1 概述 581 16.5.2 界面設計 581 16.5.3 功能實現 582 16.6 注冊向導模塊設計 583 16.6.1 概述 583 16.6.2 界面設計 584 16.6.3 功能實現 584 第17章 短信群發模塊 587 17.1 短信群發模塊概述 588 17.1.1 模塊概述 588 17.1.2 功能結構 588 17.1.3 模塊預覽 588 17.2 關鍵技術 590 17.2.1 短信貓介紹 590 17.2.2 短信貓的使用流程 592 17.2.3 發送短信 593 17.2.4 接收短信 594 17.2.5 自繪菜單 594 17.2.6 自繪工具欄 598 17.2.7 設置靜態文本控件背景透明 599 17.2.8 按分組信息插入電話號碼 600 17.2.9 自動插入聯系人 601 17.3 主窗體設計 601 17.3.1 概述 601 17.3.2 界面設計 602 17.3.3 功能實現 603 17.4 短信貓設置模塊 605 17.4.1 概述 605 17.4.2 界面設計 605 17.4.3 功能實現 606 17.5 聯系人管理模塊 607 17.5.1 概述 607 17.5.2 界面設計 607 17.5.3 功能實現 607 17.6 短信發送模塊 610 17.6.1 概述 610 17.6.2 界面設計 611 17.6.3 功能實現 611 17.7 自動回復模塊 613 17.7.1 概述 613 17.7.2 界面設計 613 17.7.3 功能實現 614 17.8 收信箱模塊 616 17.8.1 概述 616 17.8.2 界面設計 617 17.8.3 功能實現 617 17.9 回復短信模塊 618 17.9.1 概述 618 17.9.2 界面設計 618 17.9.3 功能實現 619 第18章 監控卡視頻監控模塊 621 18.1 監控卡視頻監控模塊概述 622 18.1.1 概述 622 18.1.2 模塊預覽 622 18.2 關鍵技術 624 18.2.1 視頻監控的系統部署方式 624 18.2.2 監控卡安裝過程 625 18.2.3 天敏VC4000監控卡開發流程分析 628 18.2.4 天敏VC4000監控卡SDK主要函數介紹 629 18.2.5 設計視頻預覽控件 633 18.2.6 設計視頻預覽框架窗口 636 18.2.7 云臺設備的安裝 640 18.2.8 云臺協議分析 641 18.3 服務器端主窗體設計 642 18.3.1 概述 642 18.3.2 界面布局 643 18.3.3 實現過程 643 18.4 串口設置窗體設計 648 18.4.1 概述 648 18.4.2 界面布局 648 18.4.3 實現過程 649 18.5 客戶端主窗體設計 649 18.5.1 概述 649 18.5.2 界面布局 650 18.5.3 實現過程 650 18.6 連接服務器窗體設計 653 18.6.1 概述 653 18.6.2 界面布局 653 18.6.3 實現過程 654 18.7 云臺控制碼窗體設計 654 18.7.1 概述 654 18.7.2 界面布局 655 18.7.3 實現過程 655 第19章 界面換膚模塊 657 19.1 界面換膚模塊概述 658 19.1.1 概述 658 19.1.2 模塊預覽 658 19.2 關鍵技術 660 19.2.1 創建動態鏈接庫 660 19.2.2 向動態鏈接庫中添加位圖資源 662 19.2.3 向動態鏈接庫中添加C++類 664 19.2.4 修改對話框的窗口過程 666 19.2.5 為窗口關聯一個自定義數據結構 667 19.2.6 為應用程序安裝鉤子 668 19.3 加載皮膚文件實現界面換膚 668 19.3.1 概述 668 19.3.2 設計皮膚文件 669 19.3.3 設計主應用程序 672 19.4 加載組件庫實現界面換膚 685 19.4.1 概述 685 19.4.2 設計界面換膚組件庫 685 19.4.3 設計界面換膚演示程序 691 第20章 系統優化模塊 693 20.1 系統優化模塊概述 694 20.1.1 模塊概述 694 20.1.2 功能結構 694 20.2 關鍵技術 694 20.2.1 自繪標題欄 694 20.2.2 獲得任務列表 698 20.2.3 獲得正在運行的進程 699 20.2.4 為列表視圖控件關聯右鍵菜單 700 20.2.5 清空回收站 701 20.2.6 清空“運行”中歷史記錄 701 20.2.7 清空IE歷史記錄 702 20.2.8 調用控制面板工具 702 20.3 主窗體設計 703 20.3.1 概述 703 20.3.2 界面布局 703 20.3.3 功能實現 704 20.4 控制面板操作模塊 706 20.4.1 概述 706 20.4.2 界面布局 707 20.4.3 功能實現 707 20.5 磁盤空間整理模塊 709 20.5.1 概述 709 20.5.2 界面布局 710 20.5.3 功能實現 710 20.6 垃圾文件清理模塊 713 20.6.1 概述 713 20.6.2 界面布局 713 20.6.3 功能實現 714 20.7 系統任務管理模塊 716 20.7.1 概述 716 20.7.2 界面布局 716 20.7.3 功能實現 716 996_常用算法程式集_C語言_第三版 ▲▼ 第1章多項式的計算 1 1.1一維多項式求值 1 1.2一維多項式多組求值 2 1.3二維多項式求值 5 1.4複係數多項式求值 6 1.5多項式相乘 8 1.6複係數多項式相乘 9 1.7多項式相除 11 1.8複係數多項式相除 13 第2章複數運算 16 2.1複數乘法 16 2.2複數除法 17 2.3複數乘冪 18 2.4複數的n次方根 20 2.5複數指數 21 2.6複數對數 22 2.7複數正弦 24 2.8複數余弦 25 第3章亂數的產生 27 3.1產生0到1之間均勻分佈的一個亂數 27 3.2產生0到1之間均勻分佈的亂數序列 28 3.3產生任意區間內均勻分佈的一個隨機整數 29 3.4產生任意區間內均勻分佈的隨機整數序列 31 3.5產生任意均值與方差的正態分佈的一個亂數 32 3.6產生任意均值與方差的正態分佈的亂數序列 33 第4章矩陣運算 36 4.1實矩陣相乘 36 4.2複矩陣相乘 37 4.3一般實矩陣求逆 40 4.4一般複矩陣求逆 43 4.5對稱正定矩陣的求逆 47 4.6托伯利茲矩陣求逆的特蘭持方法 50 4.7求一般行列式的值 53 4.8求矩陣的秩 55 4.9對稱正定矩陣的喬裡斯基分解與行列式求值 57 4.10矩陣的三角分解 60 4.11一般實矩陣的QR分解 62 4.12一般實矩陣的奇異值分解 66 4.13求廣義逆的奇異值分解法 77 第5章矩陣特徵值與特徵向量的計算 81 5.1約化對稱矩陣為對稱三對角陣的豪斯荷爾德變換法 81 5.2求對稱三對角陣的全部特徵值與特徵向量 85 5.3約化一般實矩陣為赫申伯格矩陣的初等相似變換法 88 5.4求赫申伯格矩陣全部特徵值的QR方法 90 5.5求實對稱矩陣特徵值與特徵向量的雅可比法 96 5.6求實對稱矩陣特徵值與特徵向量的雅可比過關法 102 第6章線性代數方程組的求解 106 6.1求解實係數方程組的全選主元高斯消去法 106 6.2求解實係數方程組的全選主元高斯-約當消去法 108 6.3求解複係數方程組的全選主元高斯消去法 111 6.4求解複係數方程組的全選主元高斯-約當消去法 114 6.5求解三對角線方程組的追趕法 118 6.6求解一般帶型方程組 121 6.7求解對稱方程組的分解法 125 6.8求解對稱正定方程組的平方根法 128 6.9求解大型稀疏方程組 131 6.10求解托伯利茲方程組的列文遜方法 133 6.11高斯-賽德爾反覆運算法 138 6.12求解對稱正定方程組的共軛梯度法 140 6.13求解線性最小二乘問題的豪斯荷爾德變換法 142 6.14求解線性最小二乘問題的廣義逆法 145 6.15求解病態方程組 147 第7章非線性方程與方程組的求解 150 7.1求非線性方程一個實根的對分法 150 7.2求非線性方程一個實根的牛頓法 152 [2] 7.3求非線性方程一個實根的埃特金反覆運算法 154 7.4求非線性方程一個實根的連分式法 156 7.5求實係數代數方程全部根的QR方法 159 7.6求實係數代數方程全部根的牛頓下山法 161 7.7求複係數代數方程全部根的牛頓下山法 166 7.8求非線性方程組一組實根的梯度法 170 7.9求非線性方程組一組實根的擬牛頓法 173 7.10求非線性方程組最小二乘解的廣義逆法 178 7.11求非線性方程一個實根的蒙特卡洛法 184 7.12求實函數或復函數方程一個複根的蒙特卡洛法 186 7.13求非線性方程組一組實根的蒙特卡洛法 188 第8章插值與逼近 192 8.1一元全區間插值 192 8.2一元三點插值 193 8.3連分式插值 195 8.4埃爾米特插值 198 8.5埃特金逐步插值 200 8.6光滑插值 202 8.7第一種邊界條件的三次樣條函數插值、微商與積分 206 8.8第二種邊界條件的三次樣條函數插值、微商與積分 210 8.9第三種邊界條件的三次樣條函數插值、微商與積分 214 8.10二元三點插值 219 8.11二元全區間插值 222 8.12最小二乘曲線擬合 224 8.13切比雪夫曲線擬合 229 8.14最佳一致逼近的裡米茲方法 233 8.15矩形域的最小二乘曲面擬合 237 第9章數值積分 244 9.1變步長梯形求積法 244 9.2變步長辛蔔生求積法 246 9.3自我調整梯形求積法 248 9.4龍貝格求積法 250 9.5計算一維積分的連分式法 253 9.6高振盪函數求積法 256 9.7勒讓德-高斯求積法 259 9.8拉蓋爾-高斯求積法 262 9.9埃爾米特-高斯求積法 264 9.10切比雪夫求積法 266 9.11計算一維積分的蒙特卡洛法 268 9.12變步長辛蔔生二重積分法 270 9.13計算多重積分的高斯方法 273 9.14計算二重積分的連分式法 276 9.15計算多重積分的蒙特卡洛法 279 第10章常微分方程組的求解 282 10.1全區間積分的定步長歐拉方法 282 10.2積分一步的變步長歐拉方法 285 10.3全區間積分的維梯方法 288 10.4全區間積分的定步長龍格-庫塔方法 291 10.5積分一步的變步長龍格-庫塔方法 294 10.6積分一步的變步長基爾方法 297 10.7全區間積分的變步長默森方法 301 10.8積分一步的連分式法 305 10.9全區間積分的雙邊法 310 10.10全區間積分的阿當姆斯預報校正法 314 10.11全區間積分的哈明方法 318 10.12積分一步的特雷納方法 323 10.13積分剛性方程組的吉爾方法 327 10.14二階微分方程邊值問題的數值解法 340 第11章資料處理 345 11.1隨機樣本分析 345 11.2一元線性回歸分析 348 11.3多元線性回歸分析 351 11.4逐步回歸分析 354 11.5半對數資料相關 364 11.6對數資料相關 366 第12章極值問題的求解 369 12.1一維極值連分式法 369 12.2n維極值連分式法 371 12.3不等式約束線性規劃問題 375 12.4求n維極值的單形調優法 379 12.5求約束條件下n維極值的複形調優法 384 第13章數學變換與濾波 392 13.1傅裡葉級數逼近 392 13.2快速傅裡葉變換 395 13.3快速沃什變換 400 13.4五點三次平滑 402 13.5離散隨機線性系統的卡爾曼濾波 404 13.6α-β-γ濾波 410 第14章特殊函數的計算 414 14.1伽馬函數 414 14.2不完全伽馬函數 416 14.3誤差函數 419 14.4第一類整數階貝塞耳函數 420 14.5第二類整數階貝塞耳函數 425 14.6變型第一類整數階貝塞耳函數 429 14.7變型第二類整數階貝塞耳函數 433 14.8不完全貝塔函數 436 14.9正態分佈函數 439 14.10t-分佈函數 441 14.11χ2-分佈函數 442 14.12F-分佈函數 444 14.13正弦積分 445 14.14余弦積分 447 14.15指數積分 449 14.16第一類橢圓積分 451 14.17第二類橢圓積分 453 第15章排序 456 15.1冒泡排序 456 15.2快速排序 461 15.3希爾排序 469 15.4堆排序 475 15.5結構排序 482 15.6磁片檔排序 493 15.7拓撲分類 497 第16章查找 500 16.1結構體陣列的順序查找 500 16.2磁片隨機文字檔的順序查找 507 16.3有序數組的對分查找 509 16.4按關鍵字成員有序的結構體陣列的對分查找 515 16.5按關鍵字有序的磁片隨機文字檔的對分查找 525 16.6磁片隨機文字檔的字串匹配 529 參考文獻 533 997_VC常用數值分析 ▲▼ 第1章 線性代數方程組的解法 1.1全主元高斯-約當(Gauss-Jordan)消去法 1.2LU分解法 1.3追趕法 1.4五對角線性方程組解法 1.5線性方程組解的反覆運算改善 1.6范德蒙(Vandermonde)方程組解法 1.7托伯利茲(Toeplitz)方程組解法 1.8奇異值分解 1.9線性方程組的共軛梯度法 1.1對稱方程組的喬列斯基(Cholesky)分解法 1.11矩陣的QR分解 1.12鬆弛反覆運算法 第2章 插值 2.1拉格朗日插值 2.2有理函數插值 2.3三次樣條插值 2.4有序表的檢索法 2.5插值多項式 2.6二元拉格朗日插值 2.7雙三次樣條插值 第3章 數值積分 3.1梯形求積法 3.2辛普森(Simpson)求積法 3.3龍貝格(Romberg)求積法 3.4反常積分 3.5高斯(Gauss)求積法 3.6三重積分 第4章 特殊函數 4.1Γ函數、貝塔函數、階乘及二項式係數 4.2不完全Γ函數、誤差函數 4.3不完全貝塔函數 4.4零階、一階和任意整數階的第一、二類貝塞爾函數 4.5零階、一階和任意整數階的第一、二類變形貝塞爾函數 4.6分數階第一類貝塞爾函數和變形貝塞爾函數 4.7指數積分和定指數積分 4.8連帶勒讓德函數 附錄 第5章 函數逼近 5.1級數求和 5.2多項式和有理函數 5.3切比雪夫逼近 5.4積分和導數的切比雪夫逼近 5.5用切比雪夫逼近求函數的多項式逼近 第6章 亂數 6.1均勻分佈亂數 6.2變換方法——指數分佈和正態分佈亂數 6.3舍選法——Γ分佈、泊松分佈和二項式分佈亂數 6.4隨機位的產生 6.5蒙特卡羅積分法 第7章 排序 7.1直接插入法和Shell方法 7.2堆排序 7.3索引表和等級表 7.4快速排序 7.5等價類的確定 附錄 第8章 特徵值問題 8.1對稱矩陣的雅可比變換 8.2變實對稱矩陣為三對角對稱矩陣 8.3三對角矩陣的特徵值和特徵向量 8.4變一般矩陣為赫申伯格矩陣 8.5實赫申伯格矩陣的QR演算法 第9章 數據擬合 9.1直線擬合 9.2線性最小二乘法 9.3非線性最小二乘法 9.4絕對值偏差最小的直線擬合 第1章 方程求根和非線性方程組的解法 1.1圖解法 1.2逐步掃描法和二分法 1.3割線法和試位法 1.4布倫特(Brent)方法 1.5牛頓-拉斐森(Newton-Raphson)法 1.6求複係數多項式根的拉蓋爾(Laguerre)方法 1.7求實係數多項式根的貝爾斯托(Bairstou)方法 1.8非線性方程組的牛頓-拉斐森方法 第11章 函數的極值和最優化 11.1黃金分割搜索法 11.2不用導數的布倫特(Brent)法 11.3用導數的布倫特(Brent)法 11.4多元函數的下山單純形法 11.5多元函數的包維爾(Powell)法 11.6多元函數的共軛梯度法 11.7多元函數的變尺度法 11.8線性規劃的單純形法 第12章 傅裡葉變換譜方法 12.1複數據快速傅裡葉變換演算法 12.2實數據快速傅裡葉變換演算法(一) 12.3實數據快速傅裡葉變換演算法(二) 12.4快速正弦變換和余弦變換 12.5卷積和逆卷積的快速演算法 12.6離散相關和自相關的快速演算法 12.7多維快速傅裡葉變換演算法 第13章 資料的統計描述 13.1分佈的矩——均值、平均差、標準差、方差、斜差和峰態 13.2中位數的搜索 13.3均值與方差的顯著性檢驗 13.4分佈擬合的X2檢驗 13.5分佈擬合的K-S檢驗法 第14章 解常微分方程組 14.1定步長四階龍格-庫塔(Runge-Kutta)法 14.2自我調整變步長的龍格-庫塔法 14.3改進的中點法 14.4外推法 第15章 兩點邊值問題的解法 15.1打靶法(一) 15.2打靶法(二) 15.3鬆弛法 第16章 偏微分方程的解法 16.1解邊值問題的鬆弛法 16.2交替方向隱式方法(ADI) 參考文獻 編後記 998_Visual C++編程技巧精選集 ▲▼ 第1章 消息框和對話框 1. 如何在窗口程序中創建消息框 2. 如何使用資源字符串設置消息框內容 3. 如伺在消息框中動態顯示資源字符串 4. 如何設置消息提示框的標題文字 5. 如何使消息提示框的標題右對齊 …… 第2章 常用控件和組件 35. 如何設置按鈕控件的標簽文本 36. 如何設置按鈕控件的顯示字體 37. 如伺動態禁用和啟用按鈕控件 38. 如何動態隱藏和顯示按鈕控件 39. 如伺在按鈕控件上動態加載圖標 …… 第3章 標題欄和菜單欄 82. 如何獲取程序窗口標題欄的高度 83. 如何獲取程序窗口標題欄的按鈕尺寸 84. 如何獲取程序窗口標題欄的文字 85. 如何獲取程序窗口標題欄的文字顏色 86. 如何設置程序窗口標題欄的文字顏色 …… 第4章 工具欄和狀態欄 128. 如何獲取工具欄中的圖標資源 129. 如何在工具欄上設置背景圖像 130. 如伺在工具欄上加載動畫窗口 131. 如何在工具欄上加載組合控件 132. 如何在工具欄上加載字體組合框 …… 第5章 光標和圖標的應用 164. 如何獲取系統默認的光標大小 165. 如何裝入操作系統預置的光標 166. 如何設置當前程序顯示的光標 167. 如何創建沙漏效果的等待光標 168. 如何使用十字光標定位畫線坐標 …… 第6章 程序主窗口界面 180. 如何建一個向導式的對話框窗體 181, 如何創建一個屬性頁的對話框窗體 182. 如何建列表視圖類型的程序窗體 183. 如何創建不規則的對話框窗體 184. 如何創建圓角狀的非矩形窗體 …… 第7章 程序管理和控制 245. 如伺捕獲按下的Home等功能鍵 246. 如伺捕獲按下的Alt或Shill+Alt組合鍵 247. 如何捕獲按下的Ctrl或Ctrl+Alt組合鍵 248. 如伺捕獲按下的Ctrl或Ctrl+Shiff組合鍵 249. 如何捕獲用戶按下鍵盤的任一按鍵 …… 第8章 打印機和打印實現 300. 如何獲取當前系統的所有打印機 301. 如何獲取當前系統的默認打印機 302. 如何設置當前系統的默認打印機 303. 如何在當前系統中添加本地打印機 304. 如何從當前系統中刪除指定的打印機 …… 第9章 進程和線程管理 341. 如何獲取所有驅動的類型狀態信息 342. 如何獲取驅動服務的類型狀態信息 343. 如何獲取文件驅動的類型狀態信息 344. 如何獲取內核驅動的類型狀態信息 345. 如何獲取服務程序的類型狀態信息 …… 第10章 文件讀寫操作 379. 如何新建—個指定的文件 380. 如何打開一定的文件 381. 如何關閉一個打開的文件 382. 如何從打開的文件讀取數據 383. 如何向指定的文件寫入數據 …… 第11章 文件和文件夾管理 403. 如何判斷指定文件的只讀屬性 404. 如何判斷指定文件的歸檔屬性 405. 如何判斷指定文件的隱藏屬性 406. 如何設置指定文件的只讀屬性 407. 如何設置指定文件的歸檔屬性 …… 第12章 字符串和數據轉換 478. 如何判斷指定的字符是否是數字 479. 如何判斷指定的字符是否是字母 480. 如何判斷指定的字符是否是符號 481. 如何判斷字符是否是數字或字母 482. 如何比較兩個字符串是否完全一致 …… 第13章 操作系統維護.. 526. 如何顯示Windows的歡迎對話框 527. 如何顯示Windows的音量對話框 528. 如何顯示Windows的性能監視器 529. 如何顯示Windows的任務管理器 530. 如何顯示Windows的版本對話框 …… 第14章 計算機設備管理 632. 如何獲取CPU處理器的3DNow特性 633. 如何獲取CPU處理器的MMX特性 634. 如何獲取CPU處理器的SSE特性 635. 如何獲取CPU處理器的低端特性 636. 如何使用環境變量獲取CPU架構 …… 第15章 文字和圖像顯示 671. 如何以空心效果繪制文字 672. 如何以彩虹效果繪制文字 673. 如何輸出具有立體效果的字符串 674. 如何以任意角度旋轉顯示字符串 675. 如何用省略號顯示字符串的其余部分 …… 第16章 音頻和視頻 725. 如何調節系統左右聲道的音量大小 726. 如何播入WAV格式的聲音文件 727. 如何使用MCI方式捐放聲音文件 728. 如何使用MCI方式錄制和捐放聲音 729. 如何通過計算機喇叭播放指定的聲音 …… 第17章 網絡通信 744. 如何初始化套接字Socket 745. 如何創建套接字Socket 746. 如何實現無連接的通信 747. 如何實現有連接的通信 748. 如何實現CS通信的網紹連接 …… 第18章 數據庫管理 822. 如何啟動SQLServer數據庫管理服務 823. 如何暫停SQLServer數據庫管理服務 824. 如何繼續SQLServer數據庫管理服務 825. 如何停止SQLSevcr數據庫管理服務 826. 如何從SQLServer服務器分離數據庫 …… 第19章 數據庫訪問 936. 如何使用ODBC方式連接數據源 937. 如何使用ODBC方式交換數據庫記錄 938. 如何使用ODBC方式瀏覽記錄 939. 如何使用ODBC方式增加記錄 940. 如何使用ODBC方式刪除記錄 …… 第20章 數據庫查詢 1051. 如何設置Access的日期查詢條件 1052. 如何獲取SQLServer的排序規則 1053. 如何獲取SQLServer的日期形式 1054. 如何使用SQL通配符實現模糊查詢 1055. 如何在LIKE表達式中使用轉義字符 …… 第21章 Word和Excel應用 1135. 如何使用Word自動化繪制直線 1136. 如何使用Word自動化設置超級鏈接 1137. 如何使用Word自動化插入當前時間 1138. 如何使用Word自動化插入當前日期 1139. 如何使用Word自動化插入藝術文字 …… 第22章 WMI查詢和管理 1189. 如何啟動Windows管理體系結構(WMI) 1190. 如何獲取指定進程的簡要信息 1191. 如何獲取指定進程的詳細信息 1192. 如何獲取指定進程的執行路徑信息 1193. 如何獲取所有進程的執行路徑信息 …… 第23章 注冊表綜合應用 1270. 如何隱藏桌面上“我的電腦”圖標 1271. 如何修改桌面上“我的電腦”圖標 1272. 如何隱藏桌面上的回收站圖標 1273. 如何在桌面上顯示IE瀏覽器圖標 1274. 如伺在桌面上顯示“我的文檔”圖標 999_專家門診—Visual C++開發答疑300問 ▲▼ 第1章 開發工具與調試 如何快速地規範代碼縮進格式 如何在Release狀態下進行調試 Release版和Debug版有什麼不同 Assert和Vertify有什麼區別 如何修改開發環境的字體 Workspace和Project之間是什麼樣的關係 如何在非MFC程序中使用ClassWizard 如何設置條件斷點 在編輯狀態下發現成員變量或函數不能顯示提示時如何打開提示功能 如何將一個通過ClassWizard生成的類刪除 如何將在workspace中消失的類找出來 如何清除所有的斷點 如何在ClassWizard中選擇未列出的消息 如何檢測程序中的括號是否匹配 如何查看一個宏(或變量、函數)的定義 如何整理ClassView視圖中大量的類 如何添加Lib文件到當前工程 #include FileName.h 和#include “FileName.h”有什麼區別 如何在工作區(Workspace)導入多個項目(Project) 如何快速刪除項目下Debug 文件夾中臨時文件 如何快速生成一個與現有工程除了工程名外完全相同的新工程 如何解決Visual C++ 6.0不正確連接問題 引起LNK2001的常見錯誤都有哪些 如何調試Windows外殼擴展程序(Shell Extension) 如何調試一個沒有原碼的exe文件調用的 dll 怎樣設置棧的大小 如何知道GetLastError()返回的錯誤代碼的意義 如何使用Visual C++ 6.0中的快捷鍵 Visual C++ 6.0工程中的項目文件都表示什麼 第2章 Visual C++ 6.0編程基礎 什麼是匈牙利命名法 Windows編程中的句柄是什麼 什麼是回調函數以及如何使用它 內存洩漏主要由哪些原因引起的 如何發現內存洩漏 C++的const類型是如何使用的 指針和引用有什麼區別 如何動態分配二維數組 純虛函數是如何使用的 堆和棧有什麼區別 兩個類互為成員應該如何聲明 bool和BOOL有什麼區別 GlobalAlloc(),malloc()和new()有什麼區別 如何使用關鍵字volatile 如何實現int與CString,char*與CString,float與CString之間的互相轉化 什麼是UNICODE以及如何使用它 C++中關鍵字typename有什麼作用 關鍵字__stdcall和__cdecl有什麼區別 第3章 對話框及控件的使用 如何創建和使用一個無模式對話框 為什麼使用CRichEditCtrl控件的對話框不能顯示出來 如何改變控件的字體 如何限制編輯框的准許字符 如何防止Edit框中的Password被非法獲取 如何設置ClistCtr控件為可以整欄選擇並且有網格條紋的報表形式 如何給CListCtrl控件增加列標題欄 如何給CListCtrl填充數據 如何實現CListCtrl中的排序問題 如何給CTreeCtrl填充數據 如何對CTreeCtrl中的節點文本進行編輯 如何實現調色程序 如何設定靜態文本框的背景色和文本顏色 如何響應CSliderCtrl控件的拖動消息以及得到當前位置 如何使用CFileDialog對話框 如何使用CColorDialog對話框 如何使用CFontDialog對話框 如何避免CRichEditCtrl中顯示中文亂碼的問題 向列表框CListBox添加很多數據時如何防止閃爍 當列表框ClistBox的項目寬度超過了其自身窗口寬度時如何顯示提示條 在給CComboBox的屬性框中加入多項時如何換行 如何在下拉框裏顯示上幾次程序運行的輸入信息 如何改變對話框DoModal的返回值 怎樣彈出選擇目錄的對話框 第4章 一般窗口及界面設計 如何設定窗口的背景色 如何生成任意形狀的窗體 如何實現無標題窗口的拖動 如何使窗體透明 如何使窗體半透明 如何保持窗口的大小不變 如何使窗口始終位於所有窗口的最上面 如何改變窗口的默認風格 如何讓窗體顯示在中央 如何使窗口不可見 如何重置窗口的大小和位置 如何將文本傾斜顯示 如何製作立體字體 串太長如何在末尾顯示省略號 如何在對話框中加入工具條 如何在基於文檔視圖的工程中加入啟動畫面 如何在基於對話框的工程中使用Splash 如何在對話框上動態創建視圖 如何將某一區域設為光標熱區 如何隨時獲得鼠標的窗口位置 如何隨意改變光標的形狀 如何控制鼠標的移動範圍 如何使窗體右上角的系統按鈕無效 如何改變窗口的圖標 屏幕保護程序的原理是什麼 應該如何製作屏幕保護程序 如何在Visual C++ 6.0中用回車鍵切換輸入焦點 如何實現類似QQ程序的界面 如何一步一步地彈出和關閉窗口 如何彈出鼠標提示窗口 如何製作類似Windows任務欄的窗口 第5章 SDI和MDI窗口 文檔、視圖、框架窗口間的關係和消息傳送規律是怎樣的 如何切分窗口 如何固定視圖間的分隔線 如何動態改變切分窗口的大小 如何實現切分窗口中視圖的動態切換 OnDraw和OnPaint之間有什麼關係 如何彈出右鍵菜單 如何顯示級聯菜單 如何給系統菜單添加一個菜單項 如何將窗體頂端標題欄的右鍵菜單屏蔽掉 如何動態增加或刪除菜單 如何使菜單項前帶圖標 如何隱藏CScrollView中的Scroll Bar 如何讓工具條的按鈕任意分組 如何給工具條增加一個下拉按鈕以及如何響應單擊下拉按鈕的消息 如何實現工具欄上的下壓式按鈕 如何在同一行上停靠兩個工具條 如何使能和禁止工具條的工具提示 如何在工具欄中放CComboBox控件 如何將系統時間在狀態欄上顯示 如何使MDI啟動時不生成子窗口 如何讓MDI窗口一啟動時就最大化或者最小化 如何改變窗口框架的顏色 怎樣得到主框架窗口指針 如何實現全屏顯示 當文檔被修改時,如何在標題上加上標誌“*” 怎樣判斷獲得的視圖指針是哪一個類 如何取得MDI應用程序中每個視圖的指針 第6章 消息系統、鉤子函數及DLL 如何自定義消息 應用程序傳送的消息有哪些以及有什麼區別 如何將幾個菜單項的消息處理函數放入一個函數中 消息WM_NOTIFY是如何使用的 是不是只要是CWnd對象就一定有消息循環 在對話框中為什麼不響應按下向下箭頭鍵(VK_DOWN)和向右箭頭鍵(VK_RIGHT)的消息 Visualc C++ 6.0可以編寫哪幾種dll Visualc C++ 6.0如何編寫Non-MFC Dlls Visualc C++ 6.0如何編寫Regular Dlls Visualc C++ 6.0如何編寫Extension Dlls 如何調用DLL 為了定位DLL,Windows搜索目錄的順序是怎樣的 怎樣從MFC擴展動態鏈結庫(DLL)中顯示一個對話框 Win32中全局鉤子的運行機制是怎樣的 Visual C++ 6.0中全局共享數據是如何實現的 如何獲知鼠標移開某個窗口 如何記錄鍵盤的所有按鍵信息 如何用按鈕模擬鼠標的點擊 如何用按鈕模擬鍵盤的輸入 如何製作軟鍵盤的應用程序 如何知道自己的工程中調用哪幾個DLL文件 第7章 磁盤路徑與文件操作 如何獲得系統的所有磁盤驅動器 怎樣獲得磁盤驅動器的序列號 如何判定驅動器的文件系統類型 如何獲得磁盤空間信息 如何判定磁盤是光驅還是軟驅 如何確定應用程序的路徑 應該在哪兒創建臨時文件 如何對INI文件進行讀寫 如何遍曆目錄下的每一個文件 如何將內容不為空的目錄刪除 如何在特定目錄下查找某個文件 如何在txt文件中逐行讀寫數據 如何獲得文件的屬性 如何拷貝文件 如何刪除文件 如何移動文件 如何讀寫大型的二進制文件 如何快速創建一個大文件 如何在Visual C++ 6.0中使用fopen()函數來讀寫文件 如何將路徑轉換為長路徑名 如何用Visual C++ 6.0編寫文件分割工具 第8章 數據庫 ODBC訪問數據庫的原理是什麼 一致的數據訪問技術ADO與OLE DB的原理以及它們的關係是怎樣的 如何在程序中動態得到字段的數據類型 如何手動註冊數據源 如何在程序中實現數據源的註冊 在Visual C++ 6.0中如何利用UDL文件來建立ADO連接 如何通過ADO接口連接數據庫 如何通過ADO的記錄集獲得每條記錄的信息 如何通過ADO的記錄集修改記錄信息 如何用SQL語句按時間檢索 如何用SQL語句按字符串檢索 如何在SQL語句中將多個字符串作為檢索條件 如何執行嵌套的SQL語句 如何訪問存有圖像字段的數據庫 如何在Visual C++ 6.0中建立自定義數據庫類 ODBC數據庫編程中DDX 和RFX有什麼區別 如何用Visual C++ 6.0開發基於Oracle數據庫的應用程序 如何直接通過ODBC讀、寫Excel表格文件 在Visual C++ 6.0中如何訪問MySQL數據庫 第9章 網絡與通信 什麼是RFC 如何獲取網卡的地址 如何獲得IP地址和主機名 如何對某些端口進行掃描 如何實現連續多次的Ping命令 如何像OutLook一樣收發電子郵件 如何連接FTP服務器 如何獲得FTP服務器的文件列表 如何下載FTP服務器上的文件 如何給FTP服務器上傳文件 什麼是Windows Sockets規範 什麼是套接口 TCP socket和UDP socket的區別是怎樣的 如何用有連接的方式實現聊天室 如何用無連接的方式實現系統廣播 如何實現Proxy服務器 如何下載網頁 如何在應用程序中映射網絡驅動器 如何實現電話撥號上網 如何刪除Internet臨時文件 如何列出系統打開的所有IE窗口的標題 如何設置某個已經打開的IE窗口的標題 如何清空IE的歷史記錄 如何實現IE中的添加收藏夾的功能 第10章 圖形圖像及打印控制 BeginPaint和GetDC獲得的DC有什麼區別 如何獲取屏幕上某點的顏色 位圖文件的結構是怎樣的 如何通過位圖文件直接得到位圖的大小 如何通過位圖文件顯示位圖 如何將DIB位圖寫入位圖文件 BitBlt和StretchBlt函數有什麼區別 什麼是掩碼位圖以及如何創建 如何利用掩碼位圖製作透明圖片 如何繪製半透明位圖 如何縮放圖片 如何對圖形進行局部放大 如何將轉換DIB位圖為DDB位圖 如何將轉換DDB位圖為DIB位圖 如何截取屏幕 如何任意裁剪圖片 如何用特定色填充某一區域 如何複製位圖到剪貼板 物理坐標和邏輯坐標有什麼區別,它們是如何轉換的 什麼是COLORREF 如何畫一個1/4圓 如何畫箭頭 如何避免屏幕閃爍 如何產生複雜線條 如何顯示JPG和GIF圖像 怎樣定制通用打印對話框CPrintDialog來實現打印功能 如何簡易實現所見即所得的打印 如何確定當前打印機的頁面大小和方向 如何確定打印隊列的狀態 第11章 操作系統 如何獲得Windows的版本號 如何得到當前Windows是不是安全模式 如何查詢註冊表中的鍵 如何修改註冊表中的鍵 如何在註冊表中增加鍵 如何刪除註冊表中的鍵 如何對屏幕分辨率進行控制 如何獲得系統運行的所有進程 如何在任務列表中隱藏應用程序 如何獲取本機的硬件配置 如何用代碼實現重啟和關閉計算機 如何羅列出系統中已經安裝的所有可用字體 Windows系統關閉的時候都發生了什麼消息 如何得到當前Windows用戶 如何格式化磁盤 如何用代碼增加快捷鍵 如何編寫需要密碼驗證的應用程序 如何調用幫助文件(*.chm) 如何修改Windows的右鍵菜單 如何在程序中改變Windows的桌面壁紙 Windows 9x下如何直接訪問物理內存 如何獲取快捷方式(.lnk)的目標和參數 Windows NT/2000系統中如何獲取系統的啟動時間 第12章 線程及進程控制 進程和線程有什麼關係 如何創建一個線程 如何終止一個線程 如何設定線程的相對優先級 如何掛起和恢復線程 如何用通過剪貼板在進程間交換數據 如何通過內存映像文件在進程間交換數據 如何通過消息實現進程間的通信 如何獲取應用程序的實例句柄 如何獲得應用程序主窗口的指針 如何獲得其他應用程序的圖標 怎樣啟動其他的應用程序 如何關閉其他已經打開的程序 如何用默認瀏覽器打開某個url的網頁 如何創建嚮導程序 如何編寫系統託盤程序 如何讓應用程序在系統中只能存在一個運行的實例 第13章 時間控制 如何計算時間差 程序中如何嵌入日曆 如何獲得毫秒級的系統時間 如何讓定時器精確到毫秒 如何對當前的系統時間進行操作 如何獲得和修改目錄的日期和時間 第14章 數學算法 中文和英文字符所占的字節數是一樣的嗎 如何統計一段中英文混合字符的字符數 排序法都有哪些,其算法都是怎樣的 如何將十進制字符串、十六進制字符串和二進制字符串互相轉化 如何隨機選號 第15章 發佈程序 如何給軟件加密和解密 如何使程序在開機時就自動運行 如何創建快捷方式 如何刪除快捷方式 如何在程序中用代碼註冊和卸載ocx控件 XXX_MFC轉換工具錯誤解決方法收集 MFC2015_D8016 MFC2015_CVT1100 XXX_VC6.0-SP6 XXX_程式碼互轉
4 thoughts on “自己當年VC(C/C++)收集範例”
三桿六自由度平台
書名:圖解資料結構 × 演算法:運用C語言
https://github.com/jash-git/MP32124_Example
Chapter 1 資料結構入門與演算法
1-1 資料結構的定義
1-1-1 資料與資訊
1-1-2 資料的特性
1-1-3 資料結構的應用
1-2 演算法
1-2-1 演算法的條件
1-2-2 演算法的表現方式
1-3 常見演算法簡介
1-3-1 分治法
1-3-2 貪心法
1-3-3 枚舉法
1-3-4 巴斯卡三角形演算法
1-3-5 質數求解演算法
1-4 演算法效能分析
1-4-1 Big-oh
1-4-2 Ω(omega)
1-4-3 θ(theta)
Chapter 2 陣列結構
2-1 線性串列簡介
2-1-1 儲存結構簡介
2-2 認識陣列
2-2-1 二維陣列
2-2-2 三維陣列
2-2-3 n 維陣列
2-3 矩陣
2-3-1 矩陣相加
2-3-2 矩陣相乘
2-3-3 轉置矩陣
2-3-4 稀疏矩陣
2-3-5 上三角形矩陣
2-3-6 下三角形矩陣
2-3-7 帶狀矩陣
2-4 陣列與多項式
2-4-1 認識多項式
Chapter 3 串列結構
3-1 動態配置記憶體
3-1-1 動態配置變數
3-2 單向串列
3-2-1 建立單向串列
3-2-2 走訪單向串列
3-2-3 單向串列插入新節點
3-2-4 單向串列刪除節點
3-2-5 單向串列的反轉
3-2-6 單向串列的連結
3-2-7 多項式串列表示法
3-3 環狀串列結構
3-3-1 環狀串列的建立與走訪
3-3-2 環狀串列的插入節點
3-3-3 環狀串列的刪除節點
3-3-4 環狀串列的連結
3-3-5 稀疏矩陣的環狀串列表示法
3-4 雙向串列
3-4-1 雙向串列的建立與走訪
3-4-2 雙向串列加入新節點
3-4-3 雙向串列刪除節點
Chapter 4 堆疊
4-1 堆疊簡介
4-1-1 陣列實作堆疊
4-1-2 串列實作堆疊
4-2 堆疊的應用
4-2-1 遞迴演算法
4-2-2 動態規劃演算法
4-2-3 河內塔問題
4-2-4 回溯法-老鼠走迷宮
4-2-5 八皇后問題
4-3 算術運算式的表示法
4-3-1 中序轉為前序與後序
4-3-2 前序與後序轉為中序
4-3-3 中序表示法求值
4-3-4 前序表示法求值
4-3-5 後序表示法求值
Chapter 5 佇列
5-1 認識佇列
5-1-1 佇列的工作運算
5-1-2 佇列的應用
5-1-3 陣列實作佇列
5-1-4 串列實作佇列
5-2 環狀佇列、雙向佇列與優先佇列
5-2-1 環狀佇列
5-2-2 雙向佇列
5-2-3 優先佇列
Chapter 6 樹狀結構
6-1 樹的基本觀念
6-1-1 樹專有名詞簡介
6-2 二元樹簡介
6-2-1 二元樹的定義
6-2-2 特殊二元樹簡介
6-3 二元樹儲存方式
6-3-1 陣列表示法
6-3-2 串列表示法
6-4 二元樹走訪
6-4-1 中序走訪
6-4-2 後序走訪
6-4-3 前序走訪
6-4-4 二元樹節點插入與刪除
6-4-5 二元運算樹
6-5 引線二元樹
6-5-1 二元樹轉為引線二元樹
6-6 樹的二元樹表示法
6-6-1 樹化為二元樹
6-6-2 二元樹轉換成樹
6-6-3 樹林化為二元樹
6-6-4 二元樹轉換成樹林
6-6-5 樹與樹林的走訪
6-6-6 決定唯一二元樹
6-7 最佳化二元搜尋樹
6-7-1 延伸二元樹
6-7-2 霍夫曼樹
6-8 平衡樹
6-8-1 平衡樹的定義
6-9 進階樹狀結構的應用
6-9-1 決策樹
6-9-2 B 樹
6-9-3 二元空間分割樹(BSP)
6-9-4 四元樹/八元樹
Chapter 7 圖形結構
7-1 圖形簡介
7-1-1 尤拉環與尤拉鏈
7-1-2 圖形的定義
7-1-3 無向圖形
7-1-4 有向圖形
7-2 圖形的資料表示法
7-2-1 相鄰矩陣法
7-2-2 相鄰串列法
7-2-3 相鄰複合串列法
7-2-4 索引表格法
7-3 圖形的走訪
7-3-1 先深後廣法
7-3-2 先廣後深法
7-4 擴張樹簡介
7-4-1 DFS擴張樹及BFS擴張樹
7-4-2 最小花費擴張樹
7-4-3 Kruskal演算法
7-4-4 Prim演算法
7-5 圖形最短路徑
7-5-1 單點對全部頂點
7-5-2 兩兩頂點間的最短路徑
7-5-3 A*演算法
7-6 AOV網路與拓樸排序
7-6-1 拓樸序列簡介
7-7 AOE網路
7-7-1 臨界路徑
Chapter 8 排序演算法
8-1 認識排序
8-1-1 排序的分類
8-1-2 排序演算法分析
8-2 內部排序法
8-2-1 氣泡排序法
8-2-2 選擇排序法
8-2-3 插入排序法
8-2-4 謝耳排序法
8-2-5 合併排序法
8-2-6 快速排序法
8-2-7 堆積排序法
8-2-8 基數排序法
8-3 外部排序法
8-3-1 直接合併排序法
8-3-2 k 路合併法
Chapter 9 搜尋演算法與雜湊函數
9-1 常見搜尋演算法
9-1-1 循序搜尋法
9-1-2 二分搜尋法
9-1-3 內插搜尋法
9-1-4 費氏搜尋法
9-2 雜湊搜尋法
9-2-1 雜湊函數簡介
9-3 常見雜湊函數
9-3-1 除法
9-3-2 中間平方法
9-3-3 折疊法
9-3-4 數位分析法
9-4 碰撞與溢位處理
9-4-1 線性探測法
9-4-2 平方探測法
9-4-3 再雜湊法
9-4-4 鏈結串列法
附錄A 資料結構專有名詞索引
RungeKutta/ 六階式RungeKutta / 相對應matlab驗證 / 拉普拉斯轉換[自動控制~系統轉移函數 Automatic control ~ system transfer function]
請AI寫出 C/C++ Runge Kutta 範例
Runge-Kutta方法是一種常用的數值方法,它可以用於求解常微分方程(ODE)的初值問題。常微分方程是一種描述一個或多個變量的變化率與它們自身的關係的方程
https://github.com/jash-git/Runge-Kutta-method-C-code