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

正文內(nèi)容

計(jì)算機(jī)圖象處理綜合訓(xùn)練-圖像幾何變換程序設(shè)計(jì)-說明書-資料下載頁

2025-05-23 18:19本頁面
  

【正文】 cX2 + fCosa * fSrcY2。fDstX3 = fCosa * fSrcX3 + fSina * fSrcY3。fDstY3 = fSina * fSrcX3 + fCosa * fSrcY3。fDstX4 = fCosa * fSrcX4 + fSina * fSrcY4。fDstY4 = fSina * fSrcX4 + fCosa * fSrcY4。lNewWidth = (LONG) ( max( fabs(fDstX4 fDstX1), fabs(fDstX3 28fDstX2) ) + )。lNewLineBytes = WIDTHBYTES(lNewWidth * 8)。 // 計(jì)算旋轉(zhuǎn)后的圖像實(shí)際寬度// 計(jì)算旋轉(zhuǎn)后的圖像高度lNewHeight = (LONG) ( max( fabs(fDstY4 fDstY1), fabs(fDstY3 fDstY2) ) + )。f1 = (float) ( * (lNewWidth 1) * fCosa * (lNewHeight 1) * fSina+ * (lWidth 1))。 // 兩個(gè)常數(shù),這樣不用以后每次都計(jì)算了f2 = (float) ( * (lNewWidth 1) * fSina * (lNewHeight 1) * fCosa+ * (lHeight 1))。 // 兩個(gè)常數(shù),這樣不用以后每次都計(jì)算了hDIB = (HDIB) ::GlobalAlloc(GHND, lNewLineBytes * lNewHeight + *(LPDWORD)lpDIB + ::PaletteSize(lpDIB))。 // 分配內(nèi)存,以保存新 DIB// 判斷是否內(nèi)存分配失敗if (hDIB == NULL) { return NULL。 } // 分配內(nèi)存失敗lpNewDIB = (char * )::GlobalLock((HGLOBAL) hDIB)。 // 鎖定內(nèi)存// 復(fù)制 DIB 信息頭和調(diào)色板memcpy(lpNewDIB, lpDIB, *(LPDWORD)lpDIB + ::PaletteSize(lpDIB))。lpNewDIBBits = ::FindDIBBits(lpNewDIB)。 // 找到新 DIB 象素起始位置// 獲取指針lpbmi = (LPBITMAPINFOHEADER)lpNewDIB。lpbmc = (LPBITMAPCOREHEADER)lpNewDIB。if (IS_WIN30_DIB(lpNewDIB)) // 更新 DIB 中圖像的高度和寬度{// 對于 Windows DIBlpbmibiWidth = lNewWidth。 lpbmibiHeight = lNewHeight。}else{ // 對于其它格式的 DIB29lpbmcbcWidth = (unsigned short) lNewWidth。lpbmcbcHeight = (unsigned short) lNewHeight。}for(i = 0。 i lNewHeight。 i++)// 針對圖像每行進(jìn)行操作{for(j = 0。 j lNewWidth。 j++) // 針對圖像每列進(jìn)行操作{ // 指向新 DIB 第 i 行,第 j 個(gè)象素的指針// 注意此處寬度和高度是新 DIB 的寬度和高度lpDst = (char *)lpNewDIBBits + lNewLineBytes * (lNewHeight 1 i) + j。// 計(jì)算該象素在源 DIB 中的坐標(biāo)i0 = ((float) j) * fSina + ((float) i) * fCosa + f2。j0 = ((float) j) * fCosa + ((float) i) * fSina + f1。// 利用雙線性插值算法來估算象素值*lpDst = Interpolation (lpDIBBits, lWidth, lHeight, j0, i0)。}}return hDIB。 // 返回}/************************************************************************** 函數(shù)名稱:Interpolation()* 參數(shù): LPSTR lpDIBBits 指向源 DIB 圖像指針 * LONG lWidth 源圖像寬度(象素?cái)?shù)) * LONG lHeight 源圖像高度(象素?cái)?shù)) * FLOAT x 插值元素的 x 坐標(biāo) * FLOAT y 插值元素的 y 坐標(biāo) * 返回值: unsigned char 返回插值計(jì)算結(jié)果。* 說明: * 該函數(shù)利用雙線性插值算法來估算象素值。對于超出圖像范圍的象素,30 * 直接返回 255。************************************************************************/unsigned char WINAPI Interpolation (LPSTR lpDIBBits, LONG lWidth, LONG lHeight, FLOAT x, FLOAT y){// 四個(gè)最臨近象素的坐標(biāo)(i1, j1), (i2, j1), (i1, j2), (i2, j2)LONG i1, i2。 LONG j1, j2。unsigned char f1, f2, f3, f4。 // 四個(gè)最臨近象素值unsigned char f12, f34。 // 二個(gè)插值中間值FLOAT EXP。 // 定義一個(gè)值,當(dāng)象素坐標(biāo)相差小于改值時(shí)認(rèn)為坐標(biāo)相同LONG lLineBytes。 // 圖像每行的字節(jié)數(shù)// 計(jì)算圖像每行的字節(jié)數(shù)lLineBytes = WIDTHBYTES(lWidth * 8)。EXP = (FLOAT) 。 // 賦值// 計(jì)算四個(gè)最臨近象素的坐標(biāo)i1 = (LONG) x。 i2 = i1 + 1。 j1 = (LONG) y。 j2 = j1 + 1。// 根據(jù)不同情況分別處理if( (x 0) || (x lWidth 1) || (y 0) || (y lHeight 1)){ return 255。 } // 要計(jì)算的點(diǎn)不在源圖范圍內(nèi),直接返回 255。else{if (fabs(x lWidth + 1) = EXP){if (fabs(y lHeight + 1) = EXP) // 要計(jì)算的點(diǎn)在圖像右邊緣上{f1 = *((unsigned char *)lpDIBBits + lLineBytes * (lHeight 1 j1) + i1)。 // 要計(jì)算的點(diǎn)正好是圖像最右下角那一個(gè)象素,直接返回該點(diǎn)象素值return f1。31}else{ // 在圖像右邊緣上且不是最后一點(diǎn),直接一次插值即可f1 = *((unsigned char *)lpDIBBits + lLineBytes * (lHeight 1 j1) + i1)。f3 = *((unsigned char *)lpDIBBits + lLineBytes * (lHeight 1 j1) + i2)。return ((unsigned char) (f1 + (y j1) * (f3 f1)))。 // 返回插值結(jié)果}}else if (fabs(y lHeight + 1) = EXP){ // 要計(jì)算的點(diǎn)在圖像下邊緣上且不是最后一點(diǎn),直接一次插值即可f1 = *((unsigned char *)lpDIBBits + lLineBytes * (lHeight 1 j1) + i1)。f2 = *((unsigned char *)lpDIBBits + lLineBytes * (lHeight 1 j2) + i1)。return ((unsigned char) (f1 + (x i1) * (f2 f1)))。 // 返回插值結(jié)果}else{// 計(jì)算四個(gè)最臨近象素值f1 = *((unsigned char *)lpDIBBits + lLineBytes * (lHeight 1 j1) + i1)。f2 = *((unsigned char *)lpDIBBits + lLineBytes * (lHeight 1 j2) + i1)。f3 = *((unsigned char *)lpDIBBits + lLineBytes * (lHeight 1 j1) + i2)。f4 = *((unsigned char *)lpDIBBits + lLineBytes * (lHeight 1 32 j2) + i2)。f12 = (unsigned char) (f1 + (x i1) * (f2 f1))。 // 插值 1f34 = (unsigned char) (f3 + (x i1) * (f4 f3))。 // 插值 2return ((unsigned char) (f12 + (y j1) * (f34 f12)))。 // 插值 3}}}
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1