国产免费AV|泡泡玛特欧洲总部将设在伦敦|中文天堂网www新版资源在线|一本久道综合在线中文|国精产品一二三产区的使用方法|香蕉鱼在线观看|www.27eee

 找回密碼
 注冊
搜索

基于SVM的手寫數字識別上位機(源碼) VC++2010 + OpenCV2.4.9開發

[復制鏈接]
樓主
coolice 發表于 2020-4-29 22:54:06 | 只看該作者 |只看大圖 |倒序瀏覽 |閱讀模式
一個基于SVM的數字手寫識別分享給大家;源碼見附件, VS2010 + OpenCV2.4.9開發
HandWrite.rar (15.41 MB, 售價: 2 E幣)
識別效果如下圖所示:
基于SVM的手寫數字識別上位機(源碼) VC++2010 + OpenCV2.4.9開發 170640zcjhg55uumet40hx.png
部分源代碼
  1. void CHandWriteDlg::OnBnClickedButtonIdentify()
  2. {
  3.         // TODO: 在此添加控件通知處理程序代碼
  4.         if(m_firstFlag == false)
  5.         {
  6.                 MessageBox(_T("請現在手寫區寫入數字!"));
  7.                 return ;
  8.         }
  9.       
  10.         CvSVM svm;
  11.         IplImage *test;
  12.         CString strResult;
  13.         char* str;
  14.         CRect pRect;
  15.         CWnd* pwnd=GetDlgItem(IDC_STATIC_HAND);//獲取靜態控件的指針 CRect pRect;
  16.         CDC* pDC=pwnd->GetDC(); //使用控件指針創建繪圖用的DC
  17.         pwnd->GetClientRect(&pRect);
  18.         int w, h;
  19.         w = pRect.right - pRect.left;
  20.         h = pRect.bottom - pRect.top;
  21.         CBitmap bm;
  22.         bm.CreateCompatibleBitmap(pDC, w, h);
  23.         CDC memdc;
  24.         memdc.CreateCompatibleDC(pDC);
  25.         CBitmap*pOld=memdc.SelectObject(&bm);
  26.         memdc.BitBlt( 0, 0, w, h, pDC, pRect.left, pRect.top, SRCCOPY );
  27.         BITMAP btm;
  28.         bm.GetBitmap(&btm);
  29.         DWORD size=btm.bmWidthBytes*btm.bmHeight;
  30.         LPSTR lpData=(LPSTR)::GlobalAlloc(GPTR,size);
  31.         BITMAPINFOHEADER bih;
  32.         bih.biBitCount=btm.bmBitsPixel;
  33.         bih.biClrImportant=0;
  34.         bih.biClrUsed=0;
  35.         bih.biCompression=0;
  36.         bih.biHeight=btm.bmHeight;
  37.         bih.biPlanes=1;
  38.         bih.biSize=sizeof(BITMAPINFOHEADER);
  39.         bih.biSizeImage=size;
  40.         bih.biWidth=btm.bmWidth;
  41.         bih.biXPelsPerMeter=0;
  42.         bih.biYPelsPerMeter=0;
  43.         GetDIBits(memdc,bm,0,bih.biHeight,lpData,(BITMAPINFO*)&bih,DIB_RGB_COLORS);
  44.         BITMAPFILEHEADER bfh;
  45.         bfh.bfReserved1=bfh.bfReserved2=0;
  46.         bfh.bfType=((WORD)('M'<< 8)|'B');
  47.         bfh.bfSize=54+size;
  48.         bfh.bfOffBits=54;

  49.         CFile bf;
  50.         if(bf.Open(_T("a.bmp"),CFile::modeCreate|CFile::modeWrite))
  51.         {
  52.                 bf.Write(&bfh,sizeof(BITMAPFILEHEADER));
  53.                 bf.Write(&bih,sizeof(BITMAPINFOHEADER));
  54.                 bf.Write(lpData,size);
  55. ……………………

  56. …………限于本文篇幅 余下代碼請下載附件…………
復制代碼


您需要登錄后才可以回帖 登錄 | 注冊

本版積分規則

手機版|小黑屋|ELEOK |網站地圖

GMT+8, 2026-5-26 03:07

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

快速回復 返回頂部 返回列表