![灰度共生矩陣VC++實現(xiàn)_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/12/65c00972-688a-420d-bd84-5ad7ba7e7316/65c00972-688a-420d-bd84-5ad7ba7e73161.gif)
![灰度共生矩陣VC++實現(xiàn)_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/12/65c00972-688a-420d-bd84-5ad7ba7e7316/65c00972-688a-420d-bd84-5ad7ba7e73162.gif)
![灰度共生矩陣VC++實現(xiàn)_第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/12/65c00972-688a-420d-bd84-5ad7ba7e7316/65c00972-688a-420d-bd84-5ad7ba7e73163.gif)
![灰度共生矩陣VC++實現(xiàn)_第4頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/12/65c00972-688a-420d-bd84-5ad7ba7e7316/65c00972-688a-420d-bd84-5ad7ba7e73164.gif)
![灰度共生矩陣VC++實現(xiàn)_第5頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/12/65c00972-688a-420d-bd84-5ad7ba7e7316/65c00972-688a-420d-bd84-5ad7ba7e73165.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、/ GrayShow.cpp: implementation of the CGrayShow class./ 灰灰灰灰灰灰灰灰灰灰 /#include "stdafx.h"#include "GrayShow.h"#include "math.h"#ifdef _DEBUG#undef THIS_FILEstatic char THIS_FILE=_FILE_;#define new DEBUG_NEW#endif/ Construction/Destruction/CGrayShow:CGrayShow()PMatrixRD =
2、NULL; /45灰度度度度灰灰灰灰灰灰 PMatrixLD = NULL; /135灰度度度度灰灰灰灰灰灰 PMatrixV = NULL; /90灰度度度度灰灰灰灰灰灰 PMatrixH = NULL; /0灰度度度度灰灰灰灰灰灰/ ImageArray = NULL; /原原度原原原原原原/m_tOriPixelArray = NULL;/原原原原原原 /m_tResPixelArray = NULL;/參參原原原原/ m_dib = new CDib();distance = 5;FilterWindowWidth = 16;GrayLayerNum = 16; /初原初初初8個灰灰個
3、,可可可可 /這這灰灰灰灰這初GrayLayerNum×GrayLayerNumPMatrixH = new intGrayLayerNum*GrayLayerNum;PMatrixLD= new intGrayLayerNum*GrayLayerNum; PMatrixRD= new intGrayLayerNum*GrayLayerNum;PMatrixV = new intGrayLayerNum*GrayLayerNum;/ for(i=0; i<GrayLayerNum; i+)/ / PMatrixHi = new intGrayLayerNum;/ PMatrix
4、LDi= new intGrayLayerNum;/ PMatrixRDi= new intGrayLayerNum;/ PMatrixVi = new intGrayLayerNum;/ CGrayShow:CGrayShow()if(PMatrixRD)delete PMatrixRD ;if(PMatrixLD)delete PMatrixLD ; /135灰度度度度灰灰灰灰灰灰 if(PMatrixV)delete PMatrixV ; /90灰度度度度灰灰灰灰灰灰 if(PMatrixH)delete PMatrixH;/功功:裝裝原原 /參原:FilePathName原原圖圖圖圖圖
5、 / void CGrayShow:LoadImage(CString &FilePathName)/ / / / int i,j;/ /檢檢檢檢初檢,不初檢不不不不不不 / if(m_tOriPixelArray !=NULL)/ / for(i=0; i<ImageHeight; i+)/ / delete m_tOriPixelArrayi;/ delete m_tResPixelArrayi;/ delete ImageArrayi;/ / / m_dib->Open(FilePathName);/ ImageWidth = m_dib->GetWidth()
6、;/ ImageHeight = m_dib->GetHeight();/ BYTE *colorTable;/ colorTable = (BYTE *)m_dib->m_pDibBits;/ int byteBitCount = m_dib->GetBiBitCount()/8;/ m_tOriPixelArray = new RGBQUAD*ImageHeight;/ m_tResPixelArray = new RGBQUAD*ImageHeight;/ ImageArray = new BYTE*ImageHeight;/ for(int l=0 ; l<Im
7、ageHeight; l+)/ / m_tOriPixelArrayl = new RGBQUADImageWidth;/ m_tResPixelArrayl = new RGBQUADImageWidth;/ ImageArrayl = new BYTEImageWidth;/ / int count = 0;/ for(i=ImageHeight-1; i>=0; i-)/ / for(j=0; j<ImageWidth; j+)/ / m_tOriPixelArrayij.rgbBlue =colorTablecount+;/ m_tOriPixelArrayij.rgbGr
8、een=colorTablecount+;/ m_tOriPixelArrayij.rgbRed =colorTablecount+;/ m_tOriPixelArrayij.rgbReserved = 0;/ m_tResPixelArrayij=m_tOriPixelArrayij;/ ImageArrayij = (BYTE)(unsigned int)m_tOriPixelArrayij.rgbBlue/ +(unsigned int)m_tOriPixelArrayij.rgbGreen/ +(unsigned int)m_tOriPixelArrayij.rgbRed)/3);/
9、count += byteBitCount-3;/ / count += (4-(ImageWidth*byteBitCount)%4)%4;/ /函原功功:計灰計計計計 /參原:FeatureEnergy功能 / FeatureEntropy熵 / FeatureInertiaQuadrature慣慣灰 / FeatureCorrelation相相 / FeatureLocalCalm局局局局 / pMatrix灰灰灰灰 / dim灰灰灰灰度共原 /void CGrayShow:ComputeFeature(double &FeatureEnergy, double &Fea
10、tureEntropy,double &FeatureInertiaQuadrature, double &FeatureCorrelation, double &FeatureLocalCalm, int* pMatrix, int dim)int i,j;double *pdMatrix;pdMatrix = new doubledim*dim;int total = 0;for(i=0; i<dim; i+)for(j=0; j<dim; j+)total += pMatrixi*dim+j;for(i=0; i<dim; i+)for(j=0;
11、 j<dim; j+)pdMatrixi*dim + j = (double)pMatrixi*dim + j/(double)total;FeatureEnergy = 0.0;FeatureEntropy = 0.0;FeatureInertiaQuadrature = 0.0;FeatureLocalCalm = 0.0; /計灰功能、熵、慣慣灰、局局局局 for(i=0; i<dim; i+)for(j=0; j<dim; j+) /功能 FeatureEnergy += pdMatrixi*dim+j*pdMatrixi*dim+j; /熵 if(pdMatrixi
12、*dim+j>1e-12)FeatureEntropy -= pdMatrixi*dim+j*log(pdMatrixi*dim+j); /慣慣灰 FeatureInertiaQuadrature += (double)(i-j)*(double)(i-j)*pdMatrixi*dim+j; /局局局局 FeatureLocalCalm += pdMatrixi*dim+j/(1+(double)(i-j)*(double)(i-j); /計灰ux double ux = 0.0;double localtotal = 0.0;for(i=0; i<dim; i+)localtot
13、al = 0.0;for(j=0; j<dim; j+)localtotal += pdMatrixi*dim+j;ux += (double)i * localtotal; /計灰uy double uy = 0.0;for(j=0; j<dim; j+)localtotal = 0.0;for(i=0; i<dim; i+)localtotal += pdMatrixi*dim+j;uy += (double)j * localtotal; /計灰sigmax double sigmax = 0.0;for(i=0; i<dim; i+)localtotal = 0
14、.0;for(j=0; j<dim; j+)localtotal += pdMatrixi*dim+j;sigmax += (double)(i-ux) * (double)(i-ux) * localtotal; /計灰sigmay double sigmay = 0.0;for(j=0; j<dim; j+) localtotal = 0.0;for(i=0; i<dim; i+)localtotal += pdMatrixi*dim+j;sigmay += (double)(j-uy) * (double)(j-uy) * localtotal;/計灰相相 Featur
15、eCorrelation = 0.0;for(i=0; i<dim; i+)for(j=0; j<dim; j+)FeatureCorrelation += (double)(i-ux) * (double)(j-uy) * pdMatrixi*dim+j;FeatureCorrelation /= sigmax;FeatureCorrelation /= sigmay;delete pdMatrix;pdMatrix = NULL;/功功:計灰灰灰灰灰 /參原:LocalImage用用計灰度局局計計用用原原 / window局局計計用用局灰 /void CGrayShow:Com
16、puteMatrix(LPBYTE LocalImage,const WORD width,/local image 度局 const WORD height,/local image 度的 int i_count, /rowint j_count, /col int window )memset(PMatrixH,0,GrayLayerNum*GrayLayerNum*sizeof(int);memset(PMatrixLD,0,GrayLayerNum*GrayLayerNum*sizeof(int); memset(PMatrixRD,0,GrayLayerNum*GrayLayerNu
17、m*sizeof(int);memset(PMatrixV,0,GrayLayerNum*GrayLayerNum*sizeof(int);int i,j;/計灰0灰度灰灰灰灰灰 for( i=i_count; i<i_count+window; i+)for( j=j_count; j<j_count+window-distance; j+)LPBYTE lptemp = LocalImage + i*width*3 + j*3; BYTE gray_I_J =BYTE(*(lptemp)*0.114 + *(lptemp+1)*0.587+*(lptemp+2)*.299)/(
18、256/GrayLayerNum); LPBYTE lpdistance = lptemp +distance*3;BYTE gray_I_Distance = BYTE(*(lpdistance)*0.114+*(lpdistance+1)*0.587+*(lpdistance+2)*0.299)/(256/GrayLayerNum);PMatrixHgray_I_J*GrayLayerNum + gray_I_Distance += 1; PMatrixHgray_I_Distance*GrayLayerNum + gray_I_J += 1;/計灰90灰度灰灰灰灰灰 for(i=i_co
19、unt; i<i_count+window-distance; i+)for(j=j_count; j<j_count+window; j+) LPBYTE lptemp = LocalImage + i*width*3 + j*3;BYTE gray_I_J =BYTE(*(lptemp)*0.114 + *(lptemp+1)*0.587+*(lptemp+2)*.299)/(256/GrayLayerNum);LPBYTE lpdistance = /*lptemp +distance*3*/LocalImage + (i+distance)*width*3 + j*3;BY
20、TE gray_I_Distance = BYTE(*(lpdistance)*0.114+*(lpdistance+1)*0.587+*(lpdistance+2)*0.299)/(256/GrayLayerNum); PMatrixVgray_I_J*GrayLayerNum + gray_I_Distance += 1;PMatrixVgray_I_Distance*gray_I_J + gray_I_J += 1;/計灰135灰度灰灰灰灰灰 for(i=i_count; i<i_count+window-distance; i+)for(j=j_count; j<j_cou
21、nt+window-distance; j+)int newi, newj;newi = i+distance;newj = j+distance;LPBYTE lptemp = LocalImage + i*width*3 + j*3;BYTE gray_I_J =BYTE(*(lptemp)*0.114 + *(lptemp+1)*0.587+*(lptemp+2)*.299)/(256/GrayLayerNum);LPBYTE lpdistance = /*lptemp +distance*3*/LocalImage + (newi)*width*3 + newj*3;BYTE gray
22、_I_Distance = BYTE(*(lpdistance)*0.114+*(lpdistance+1)*0.587+*(lpdistance+2)*0.299)/(256/GrayLayerNum); PMatrixLDgray_I_J*GrayLayerNum + gray_I_Distance += 1;PMatrixLDgray_I_Distance*gray_I_J + gray_I_J += 1; /計灰45灰度灰灰灰灰灰 for(i=i_count+distance; i<i_count+window; i+) for(j=j_count; j<j_count+w
23、indow-distance; j+) int newi, newj;newi = i-distance;newj = j+distance;LPBYTE lptemp = LocalImage + i*width*3 + j*3;BYTE gray_I_J =BYTE(*(lptemp)*0.114 + *(lptemp+1)*0.587+*(lptemp+2)*.299)/(256/GrayLayerNum);LPBYTE lpdistance = /*lptemp +distance*3*/LocalImage + (newi)*width*3 + newj*3;BYTE gray_I_Distance = BYTE(*(lpdistance)*0.114+*(lpdistance+1)*0.587+*(lpdistance+2)*0.299)/(256/GrayLayerNum);PMatrixRDgr
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度教育培訓(xùn)中心租賃合同范本-@-1
- 二零二五年度木門電商平臺合作運營合同
- 2025年全球及中國人體工學(xué)靠墊行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報告
- 2025-2030全球水處理用復(fù)合管行業(yè)調(diào)研及趨勢分析報告
- 2025-2030全球呼吸道藥物吸入器行業(yè)調(diào)研及趨勢分析報告
- 二零二五年度內(nèi)墻保溫材料研發(fā)與市場推廣合作合同
- 二零二五年度駕駛員安全責(zé)任保險合同范本
- 合伙房屋買賣合同
- 四川省事業(yè)單位聘用合同
- 瓷磚銷售買賣合同協(xié)議
- 中國儲備糧管理集團(tuán)有限公司蘭州分公司招聘筆試真題2024
- 第1課 隋朝統(tǒng)一與滅亡 課件(26張)2024-2025學(xué)年部編版七年級歷史下冊
- 提高金剛砂地坪施工一次合格率
- 【歷史】唐朝建立與“貞觀之治”課件-2024-2025學(xué)年統(tǒng)編版七年級歷史下冊
- 產(chǎn)業(yè)園區(qū)招商合作協(xié)議書
- 2024年廣東省公務(wù)員錄用考試《行測》真題及答案解析
- 2025新譯林版英語七年級下單詞默寫表
- 盾構(gòu)標(biāo)準(zhǔn)化施工手冊
- 天然氣脫硫完整版本
- 中歐班列課件
- 2025屆高三數(shù)學(xué)一輪復(fù)習(xí)備考經(jīng)驗交流
評論
0/150
提交評論