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

正文內(nèi)容

基于顏色特征的圖像數(shù)據(jù)庫檢索系統(tǒng)開發(fā)(編輯修改稿)

2025-07-16 13:00 本頁面
 

【文章內(nèi)容簡介】 第三方類庫擴展了MFC的功能。圖像處理類庫:Cximage類庫。CxImage類庫簡介:CxImage類庫是一個優(yōu)秀的圖像操作類庫。它可以快捷地存取、顯示、轉(zhuǎn)換各種圖像。比如BMP, JPEG, GIF, PNG, TIFF, MNG, ICO, PCX, TGA, WMF, WBMP, JBG, J2K 等格式的文件??梢詫崿F(xiàn)BMPJPG,PNG TIFF格式等等的轉(zhuǎn)換。CxImage類庫類庫為開放源碼,一個圖像處理的基礎(chǔ)類庫,可以讀各種各樣的圖像,并且包括一些基本操作,集成圖像處理和采集及變換的全部功能,可針對各種類型的圖像進行處理。本項目主要針對jpg類型的圖像檢索。3.2 ImageSystem系統(tǒng)組成本圖像檢索系統(tǒng)主要有以下幾部分組成:顏色特征提取、顏色特征入庫、相似性度量、顯示結(jié)果(包括顯示相似圖像和顯示檢索速度)。如圖31所示:圖31 系統(tǒng)組成圖3.3 ImageSystem系統(tǒng)框架本圖像檢索系統(tǒng)的系統(tǒng)框架可歸納為以下幾部分組成:源圖像庫查詢圖特征提取圖像特征庫特征匹配(相似度量)顯示圖像本圖像檢索系統(tǒng)的整體框架,如圖32所示:圖32 系統(tǒng)框架圖3.4 數(shù)據(jù)庫的設(shè)計本圖像檢索系統(tǒng)的數(shù)據(jù)庫采用ACCESS數(shù)據(jù)庫。ImageLib數(shù)據(jù)庫具有7張表,分別是COLOR_HSV,COLOR_HSL,COLOR_RGB,COLOR_XYZ,COLOR_YIQ,COLOR_YUV,COLOR_HSV_POWER。表31 COLOR_HSV的表結(jié)構(gòu)字段名稱數(shù)據(jù)類型說明Name文本存放圖像文件的路徑DataOLE對象存放圖像的特征值其中Name字段的字段大小為“255”,必填字段為“是”,允許空字符串為“是”,索引為“有(無重復)”,Unicode壓縮為“是”,輸入法模式為“開啟”。表COLOR_HSL,COLOR_RGB,COLOR_XYZ,COLOR_YIQ,COLOR_YUV與表COLOR_HSV的表結(jié)構(gòu)相同,這里將不做重復論述。表32 COLOR_HSV_POWER的表結(jié)構(gòu)字段名稱數(shù)據(jù)類型說明Name文本存放圖像文件的路徑Data0OLE對象存放圖像的特征值Data1OLE對象存放圖像的特征值Data2OLE對象存放圖像的特征值Data3OLE對象存放圖像的特征值Data4OLE對象存放圖像的特征值Data5OLE對象存放圖像的特征值Data6OLE對象存放圖像的特征值Data7OLE對象存放圖像的特征值Data8OLE對象存放圖像的特征值其中Name字段的字段大小為“255”,必填字段為“否”,允許空字符串為“是”,索引為“有(無重復)”,Unicode壓縮為“是”,輸入法模式為“開啟”。3.5 特征類的設(shè)計本系統(tǒng)中的特征類為CFeature,CFeature的設(shè)計是整個程序設(shè)計過程中最基礎(chǔ)的,也十分重要的。主要完成各個顏色直方圖函數(shù)設(shè)計,顏色空間的轉(zhuǎn)換函數(shù)設(shè)計等等。CFeature類的設(shè)計如下:class CFeature{public: CFeature(void)。 //構(gòu)造函數(shù),暫時未用到,保留 ~CFeature(void)。 //析構(gòu)函數(shù),暫時未用到,保留public: // 顏色直方圖HSV (含顏色量化) static BOOL Color_HSV(CxImage* pImage, HSV_DATA* pHsvData)。 // 顏色直方圖HSV 分塊加權(quán),此為在HSV基礎(chǔ)上改進后的 static BOOL Color_HSV_POWER(CxImage* pImage, ARR_HSV_DATA* pArrHsvData)。// YUV、RGB、XYZ、HSL、YIQ 顏色直方圖算法 static BOOL Color_YUV(CxImage* pImage, HSV_DATA* pHsvData)。 static BOOL Color_RGB(CxImage* pImage, HSV_DATA* pHsvData)。 static BOOL Color_XYZ(CxImage* pImage, HSV_DATA* pHsvData)。 static BOOL Color_HSL(CxImage* pImage, HSV_DATA* pHsvData)。 static BOOL Color_YIQ(CxImage* pImage, HSV_DATA* pHsvData)。private: static void FEA_HSV(CxImage* pImage, double* feaHsv, longamp。 xStart, longamp。 xEnd, longamp。 yStart, longamp。 yEnd)。 static HSVType RGB_to_HSV( RGBType RGB )。 //RGB顏色空間轉(zhuǎn)換為HSV的函數(shù) static RGBType HSV_to_RGB( HSVType HSV )。 //HSV顏色空間轉(zhuǎn)換為RGB的函數(shù)private://顏色直方圖函數(shù)的設(shè)計 static void RGBHisto(CxImage* pImage, double **RGBHistogram)。 static void YUVHisto(CxImage* pImage, double **YUVHistogram)。 static void XYZHisto(CxImage* pImage, double **XYZHistogram)。 static void HSLHisto(CxImage* pImage, double **HSLHistogram)。 static void YIQHisto(CxImage* pImage, double **YIQHistogram)。public: // 不變矩函數(shù)的設(shè)計 static BOOL Invariant_Moment(CxImage* pImage, HSV_DATA* pHsvData)。 // 其余輔助函數(shù)的設(shè)計將不列出}。在下面一小節(jié)中將重點介紹顏色直方圖的算法設(shè)計。3.6 顏色直方圖的算法設(shè)計在本節(jié)中將主要論述HSV顏色直方圖的算法,以及改進之后的分塊加權(quán)HSV顏色直方圖的算法。系統(tǒng)中還涉及到Y(jié)UV顏色直方圖,RGB顏色直方圖,XYZ顏色直方圖,HSL顏色直方圖,YIQ顏色直方圖,它們的算法將不做詳細論述,將在最后的附錄中列出。HSV顏色直方圖的算法描述如下:BOOL CFeature::Color_HSV(CxImage* pImage, HSV_DATA* pHsvData){ long xStart = 0。 long xEnd = (long)pImageGetWidth()。 long yStart = 0。 long yEnd = (long)pImageGetHeight()。 double feaHsv[256]。 FEA_HSV(pImage, feaHsv, xStart, xEnd, yStart, yEnd)。 for(int j = 0。j 256。j++) { pHsvDatapush_back(feaHsv[j])。 } return TRUE。}為了提高檢索結(jié)果的精確度,在原有HSV顏色直方圖的基礎(chǔ)上對其進行改進為分塊加權(quán)HSV顏色直方圖(33塊),其相應的算法描述如下:BOOL CFeature::Color_HSV_POWER(CxImage* pImage, ARR_HSV_DATA* pArrHsvData){ long xStart, xEnd, yStart, yEnd。 long lWidth = (long)pImageGetWidth()。 long lHeight = (long)pImageGetHeight()。 // 分塊數(shù)目(不支持修改) long xNum = 3。 long yNum = 3。 double feaHsv[9][256]。 // 第一行 // 0塊 xStart = 0。 xEnd = lWidth/xNum。 yStart = 0。 yEnd = lHeight/yNum。 FEA_HSV(pImage, feaHsv[0], xStart, xEnd, yStart, yEnd)。 // 1塊 xStart = lWidth/xNum。 xEnd = 2*lWidth/xNum。 yStart = 0。 yEnd = lHeight/yNum。 FEA_HSV(pImage, feaHsv[1], xStart, xEnd, yStart, yEnd)。 // 2塊 xStart = 2*lWidth/xNum。 xEnd = lWidth。 yStart = 0。 yEnd = lHeight/yNum。 FEA_HSV(pImage, feaHsv[2], xStart, xEnd, yStart, yEnd)。 // 第二行 // 3塊 xStart = 0。 xEnd = lWidth/xNum。 yStart = lHeight/yNum。 yEnd = 2*lHeight/yNum。 FEA_HSV(pImage, feaHsv[3], xStart, xEnd, yStart, yEnd)。 // 4塊 xStart = lWidth/xNum。 xEnd = 2*lWidth/xNum。 yStart = lHeight/yNum。 yEnd = 2*lHeight/yNum。 FEA_HSV(pImage, feaHsv[4], xStart, xEnd, yStart, yEnd)。 // 5塊 xStart = 2*lWidth/xNum。 xEnd = lWidth。 yStart = lHeight/yNum。 yEnd = 2*lHeight/yNum。 FEA_HSV(pImage, feaHsv[5], xStart, xEnd, yStart, yEnd)。 // 第三行 // 6塊 xStart = 0。 xEnd = lWidth/xNum。 yStart = 2*lHeight/yNum。 yEnd = lHeight。 FEA_HSV(pImage, feaHsv[6], xStart, xEnd, yStart, yEnd)。 // 7塊 xStart = lWidth/xNum。 xEnd = 2*lWidth/xNum。 yStart = 2*lHeight/yNum。 yEnd = lHeight。 FEA_HSV(pImage, feaHsv[7], xStart, xEnd, yStart, yEnd)。 // 8塊 xStart = 2*lWidth/xNum。 xEnd = lWidth。 yStart = 2*lHeight/yNum。 yEnd = lHeight。 FEA_HSV(pImage, feaHsv[8], xStart, xEnd, yStart, yEnd)。 // 記錄數(shù)據(jù) HSV_DATA hsvData。 for (int i = 0。i 9。i++) { ()。 for(int j = 0。j 256。j++) { (feaHsv[i][j])。 } pArrHsvDatapush_back(hsvData)。 } return TRUE。}3.7 顏色特征入庫的設(shè)計本章節(jié)將主要論述HSV顏色特征入庫的整個過程,其中包括提取HSV顏色特征,序列化得到二進制文件,數(shù)據(jù)入庫,顯示圖片。其余YUV,RGB,XYZ,HSL,YIQ,分塊加權(quán)HSV將在本章節(jié)中不做詳述。void CImageSystemView::ColorHSVtoDB() // 顏色特征入庫HSV{ BeginTimer()。 InitList()。 CString strFileName。 CxImage imgLib。 HSV_DATA dataHSV。 IMAGE_HSV_DATA arrHsvData。 int nAmount = (int) ()。 // 提取顏色特征HSV SetDlgItemText(IDC_TEXT_PROGRESS, _T(提取顏色特征進度))。 (0, nAmount)。 for(int i = 0。i nAmount。i++) { strFileName = _T(m_strImgLibPath + \\ + (i))。 (strFileName, CXIMAGE_FORMAT_JPG)。 ()。
點擊復制文檔內(nèi)容
法律信息相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1