freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

vc環(huán)境下實現(xiàn)圖像的融合畢業(yè)論文-資料下載頁

2025-06-28 09:03本頁面
  

【正文】 t the focus to a control}void CspliceImageDlg::OnSysCommand(UINT nID, LPARAM lParam){ if ((nID amp。 0xFFF0) == IDM_ABOUTBOX) { CAboutDlg dlgAbout。 ()。 } else { CDialog::OnSysCommand(nID, lParam)。 }}// If you add a minimize button to your dialog, you will need the code below// to draw the icon. For MFC applications using the document/view model,// this is automatically done for you by the framework.void CspliceImageDlg::OnPaint(){ if (IsIconic()) { CPaintDC dc(this)。 // device context for painting SendMessage(WM_ICONERASEBKGND, reinterpret_castWPARAM(()), 0)。 // Center icon in client rectangle int cxIcon = GetSystemMetrics(SM_CXICON)。 int cyIcon = GetSystemMetrics(SM_CYICON)。 CRect rect。 GetClientRect(amp。rect)。 int x = (() cxIcon + 1) / 2。 int y = (() cyIcon + 1) / 2。 // Draw the icon (x, y, m_hIcon)。 } else { CRect rt。 GetClientRect(rt)。 CPaintDC dc(this)。 Graphics grap(())。 if(m_firstImg) { (m_firstImg,0,0,() / 3 10,())。 } if(m_secondImg) { (m_secondImg,() / 3 10,0,() / 3 10,())。 } if(m_afterSpliceImage) { (m_afterSpliceImage,(() / 3 10) * 2,0,() / 3 10,())。 } CDialog::OnPaint()。 }}// The system calls this function to obtain the cursor to display while the user drags// the minimized window.HCURSOR CspliceImageDlg::OnQueryDragIcon(){ return static_castHCURSOR(m_hIcon)。}void CspliceImageDlg::OnBnClickedButton1(){ // TODO: Add your control notification handler code here CFileDialog dlg(TRUE)。 if(() == IDOK) { if(m_firstImg) delete m_firstImg。 m_firstImg = Image::FromFile(())。 if(m_firstImg == NULL) { AfxMessageBox(_T(打開文件失敗,不為圖像文件或不能讀取文件!))。 return。 } Invalidate()。 }}void CspliceImageDlg::OnBnClickedButton2(){ // TODO: Add your control notification handler code here CFileDialog dlg(TRUE)。 if(() == IDOK) { if(m_secondImg) delete m_secondImg。 m_secondImg = Image::FromFile(())。 if(m_secondImg == NULL) { AfxMessageBox(_T(打開文件失敗,不為圖像文件或不能讀取文件!))。 return。 } Invalidate()。 }}void CspliceImageDlg::OnBnClickedButton3(){ // TODO: Add your control notification handler code here if(m_secondImg == NULL || m_firstImg == NULL) { AfxMessageBox(_T(請先打開兩張圖片!))。 return。 } if(m_secondImgGetPixelFormat() != m_firstImgGetPixelFormat()) { AfxMessageBox(_T(兩張圖片格式不一樣,不能進行拼接!))。 return。 } if(m_afterSpliceImage) delete m_afterSpliceImage。 Bitmap *pbit = ::new Bitmap(m_secondImgGetWidth() + m_firstImgGetWidth(),max(m_secondImgGetHeight(),m_firstImgGetHeight()),m_firstImgGetPixelFormat())。 m_afterSpliceImage = pbit。 Graphics grap(pbit)。 (m_firstImg,0,0)。 (m_secondImg,m_firstImgGetWidth(),0)。 m_afterSpliceImage = pbit。 Invalidate()。}int GetEncoderClsid(const WCHAR* format, CLSID* pClsid){ UINT num = 0。 // number of image encoders UINT size = 0。 // size of the image encoder array in bytes ImageCodecInfo* pImageCodecInfo = NULL。 GetImageEncodersSize(amp。num, amp。size)。 if(size == 0) return 1。 // Failure pImageCodecInfo = (ImageCodecInfo*)(malloc(size))。 if(pImageCodecInfo == NULL) return 1。 // Failure GetImageEncoders(num, size, pImageCodecInfo)。 for(UINT j = 0。 j num。 ++j) { if( wcscmp(pImageCodecInfo[j].MimeType, format) == 0 ) { *pClsid = pImageCodecInfo[j].Clsid。 free(pImageCodecInfo)。 return j。 // Success } } free(pImageCodecInfo)。 return 1。 // Failure}void CspliceImageDlg::OnBnClickedOk(){ // TODO: Add your control notification handler code here //OnOK()。 if(m_afterSpliceImage == NULL) { AfxMessageBox(_T(沒有拼接圖片!))。 return。 } CFileDialog dlg(FALSE)。 if(() == IDOK) { CLSID pngClsid。 GetEncoderClsid(Limage/png, amp。pngClsid)。 m_afterSpliceImageSave((() + _T(.png)),amp。pngClsid)。 }} 一般情況下,圖像融合由低到高分為三個層次:數(shù)據(jù)級融合、特征級融合、決策級融合。數(shù)據(jù)級融合也稱像素級融合,是指直接對傳感器采集來得數(shù)據(jù)進行處理而獲得融合圖像的過程,它是高層次圖像融合的基礎(chǔ),也是目前圖像融合研究的重點之一。這種融合的優(yōu)點是保持盡可能多得現(xiàn)場原始數(shù)據(jù),提供其它融合層次所不能提供的細微信息。 像素級融合中有空間域算法和變換域算法,空間域算法中又有多種融合規(guī)則方法,如邏輯濾波法,灰度加權(quán)平均法,對比調(diào)制法等;變換域中又有金字塔分解融合法,小波變換法。其中的小波變換是當(dāng)前最重要,最常用的方法。 特征級融合是在像素級融合的基礎(chǔ)上,使用參數(shù)模板、統(tǒng)計分析、模式相關(guān)等方法進行幾何關(guān)聯(lián)、目標(biāo)識別、特征提取的融合方法,用以排除虛假特征,以利于系統(tǒng)判決。特征級融合可從兩方面進行研究,目標(biāo)狀態(tài)數(shù)據(jù)融合和目標(biāo)特性融合。該層融合的優(yōu)點在于實現(xiàn)了可觀的信息壓縮,便于實時處理,其融合結(jié)果能夠最大限度地給出決策分析所需要的特征信息。研究方法主要從聚類分析法、DempsterShafer推理法、貝葉斯估計法、神經(jīng)網(wǎng)絡(luò)法等展開。在特征級融合中,保證不同圖像包含信息的特征,如紅外光對于對象熱量的表征,可見光對于對象亮度的表征等等。 決策級融合主要在于主觀的要求,同樣也有一些規(guī)則,如貝葉斯法,DS證據(jù)法和表決法等。 融合算法常結(jié)合圖像的平均值、熵值、標(biāo)準偏差、平均梯度;平均梯度反映了圖像中的微小細節(jié)反差與紋理變化特征,同時也反映了圖像的清晰度。目前對圖像融合存在兩個問題:最佳小波基函數(shù)的選取和最佳小波分解層數(shù)的選取。圖像經(jīng)預(yù)處理,達到像素級融合,再經(jīng)特征提取,達到特征級融合,再經(jīng)圖像的分類,達到?jīng)Q策級融合,最后得到廣泛應(yīng)用。 融合的算法1. 讀取BMP圖像信息。首先定義一個數(shù)組,讀取一張BMP圖像的信息,記錄這張圖片的偏移量、長寬高等基本信息于定義的數(shù)組當(dāng)中,比如這張圖片有208行303列,那就將結(jié)果依次存入定義數(shù)組的后面幾個存儲區(qū)域中,接著再定義一個數(shù)組,讀取第二張BMP圖像的信息,按照第一種的方式讀取該照片的基本信息于定義的數(shù)組當(dāng)中。2. 開始找兩張圖片的相同部分。先掃描第一張圖片,按列掃,順序從右往左,先掃第一列,發(fā)現(xiàn)全部是白點,不管它接著掃,也可以跳著掃,跳三行五行,直到發(fā)現(xiàn)黑點為止,發(fā)現(xiàn)黑點后,掃它臨近的左三行,右三行,或者五行,直到遇到白點為止,讀取出黑點的形狀,拿著這個形狀去跟第二張圖片比較掃描第二張圖片時從左往右掃,直到找到相同部分即可,然后記下行值列值。接著繼續(xù)掃第一張圖片,按照剛才的方法循環(huán)下去,直到掃完第一張圖片,比較完第二張圖片,然后記下第二張圖片的最后一份相同的點的行值列值。比如是158列,那就取第二張圖片的303158=145列后半部分。3. 找張新的圖片把第一張圖片和第二章圖片的后145列部分拼接起來。這張圖片的大小必須大于這兩張圖片的和,比如上面例子中說的新圖片的大小應(yīng)該是303行208+145=353列。簡單的拼接后即完成兩張圖片的融合。 VC環(huán)境下融合的C++實現(xiàn)1 總體設(shè)計 程序解決方案2 程序頭文件 3 :// : header file//pragma once// CspliceImageDlg dialogclass CspliceImageDlg : public CDialog{// Constructionpublic: CspliceImageDlg(CWnd* pParent = NULL)。 // standard constructor// Dialog Data enum { IDD = IDD_SPLICEIMAGE_DIALOG }。 protected: virtual void DoDataExchange(CDataExchange* pDX)。 // DDX/DDV support// Implementationprotected: HICON m_hIcon。 Image *m_firstImg。 Image *m_secondImg。 Image *m_afterSpliceImage。 CString m_path1,m_path2。 // Generated message map functions virtual BOOL OnInitDialog()。 afx_msg void OnSysCommand(UINT nID, LPARAM lParam)。 afx_msg void OnPaint()。 afx_msg HCURSO
點擊復(fù)制文檔內(nèi)容
范文總結(jié)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1