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

正文內(nèi)容

基于離散小波變換的圖像數(shù)字水印技術(shù)論文(已改無錯(cuò)字)

2022-12-21 01:25:11 本頁面
  

【正文】 于或等于 8,則將位平面全部嵌入到 HL3中;否則 HL3和 LH3中分別嵌入 4位平面,在嵌入過程中需對(duì)位平面嵌入的位置作準(zhǔn)確的計(jì)算。 L1和 L0位平面的嵌入算法與 G2 相同。 參數(shù)說明: wmHeight、 wmWidth為水印圖像的高和寬, picHeight、 picWidth為原始圖像的高和寬,PictureData 存儲(chǔ)原始圖像3層小波變換后的小波系數(shù)的數(shù)據(jù), WaterData 存儲(chǔ)水印位平面信息,picBits、 wmBits分別為原始圖像和水印圖像的位數(shù)。 函數(shù)部分代碼: void InsertWaterBits(unsigned char *PictureData,unsigned char *WaterData,unsigned int width,unsigned int height,unsigned int w_width,unsigned int w_height,unsigned int m,unsigned int n,unsigned int time, int picBits, int wmBits) 打開原始掩體圖像 是否為原始圖像 輸出提示信息 三層離散小波變換 多分辨率層原始掩體圖像 否 是 開始 嵌有水印的原始圖像 輸出提示信息 BMP 圖像 三層離散小波變換 水印位平面信息提取 高、中、低頻水印信息 逆置亂處理 插值運(yùn)算 水印圖像 結(jié)束 否 是 原始圖像處理 14 { ??? //number為原圖像能嵌入水印的塊數(shù) int number = (int)( (picWidth * picHeight) / (wmWidth * wmHeight) )。 unsigned int i = 0, j = 0。 //原圖像塊寬度能嵌入的塊數(shù) unsigned int line = (unsigned int)(time / (picWidth / wmWidth))。 //time為將要嵌入的位平面序號(hào) unsigned int position = time line * (picWidth / wmWidth)。 if(number = 8 || time 4) { // number = 8 或 time 4時(shí),水印位平面都嵌入到離散小波變換后的 HL 塊 for(i=0。 iwmHeight。 i++) { for(j=0。 jwmWidth。 j++) { //picHeight是原圖像塊的位置 PictureData[ (picHeight + (line * wmHeight) + i) * width + (position * wmWidth) + j] += WaterData[i * wmWidth + j]。 }//for1 //(line * wmHeight)是控制每行能嵌入的位平面數(shù) }//for2 }//if else if(time = 4) { //number8時(shí),則位平面要分別嵌入到 HL和 LH塊, time=4時(shí),位平面嵌入到 LH 塊 line = (unsigned int)((time % 4) / (picWidth / wmWidth))。 //水印圖像嵌入的行的位置 position = (time % 4) line * (picWidth / wmWidth)。 //水印圖像嵌入的寬度上的位置 for(i=0。 iwmHeight。 i++) { for(j=0。 jwmWidth。 j++) { //(line * wmHeight)是控制每行能嵌入的位平面數(shù) PictureData[ ((line * wmHeight) + i) * width + picWidth + (position * wmWidth) + j] += WaterData[i * wmWidth + j]。 }//for1 }//for2 }//elseif ??? } 2. 水印位平面信息提取函數(shù) 函數(shù)功能: 將嵌入到原始圖像中的水印位平面信息提取出來,并由提取的位平面分別計(jì)算出水印的3個(gè)分辨率層,作為水印重構(gòu)的信息。 實(shí)現(xiàn)算法描述:水印提取過成中,首先打開嵌有水印的圖像,將其進(jìn)行 3層離散小波變換,再打開原始水印掩體圖像,同樣作三層離散 小波變換。例如當(dāng)提取水印分辨率層 G2的位平面信息時(shí),是要將兩個(gè)經(jīng)三層離散小波變換的 HL3和 LH3區(qū)域的數(shù)據(jù)進(jìn)行比較,如果其相同位置的小波系數(shù)相同,則 G2對(duì)應(yīng)的位信息為 1,否則為 0。提取的位平面順序?yàn)閺牡臀坏礁呶?,?jì)算層數(shù)據(jù)值可描述為 ,Y=Y+x*pow (2,n),( 0≤ n≤ 7)其中 Y 為水印層分辨率數(shù)據(jù)值, x為位平面值, pow為求冪函數(shù), n為位平面在 8個(gè) 15 位平面中的序號(hào)。 L1和 L0獲取算法相同。 參數(shù)說明: height、 width為水印圖像的高和寬, picHeight、 picWidth為原始圖像的高和寬, picData存儲(chǔ)原始圖像3層小波變換后的小波系數(shù)的數(shù)據(jù), wmData 存儲(chǔ)原始圖像3層小波變換后的小波系數(shù),Out存儲(chǔ)提取的水印分辨率層信息。 函數(shù)部分代碼: void CPublic::DetectMarking(unsigned char *Out, unsigned char *picData, unsigned char *wmData, unsigned int picWidth, unsigned int picHeight, unsigned int width, unsigned int height, unsigned int m, unsigned int n) { ??? for(i=0。 iwidth。 i++) { for(j=0。 jheight。 j++) { // n 4時(shí),在 HL塊提取位平面, n 4時(shí)在 LH塊提取水印位平面 if(n 4) { value1 = (picHeight / m + unsigned int(n / 2) * height + i) * picWidth。 } //位 平面點(diǎn)的位置 else { value1 = picWidth / m + (unsigned int((n % 4) / 2) * height + i) * picWidth。 } value1 = value1 + (((n % 4) % 2) * width + j)。 if(picData[value1] != wmData[value1]) value2 = 1。 //相對(duì)應(yīng)的小波系數(shù)不等,位平面值為 1 else value2 = 0。 Out[i * (picWidth / 4) + j] += ( value2 * unsigned int(pow(2, n)) )。 } //計(jì)算水印分辨率層的像素值 }//提取位平面 ??? } 小波變換函數(shù) 1. 小波行變換函數(shù) 函數(shù)功能 :小波變換分為行變換和列變換兩個(gè)運(yùn)算步驟,行變換函數(shù)完成小波變換的行變換操作,如原始掩體圖像經(jīng)小波行變換后的效果如圖 24左所示。 實(shí)現(xiàn)算法描述:圖像像素值可存儲(chǔ)在一個(gè)二維數(shù)組中, 小波行變換是將圖像 偶數(shù)列存儲(chǔ)在左 半部分 ,奇數(shù)列存儲(chǔ)在右 半部分,然 后用奇數(shù)列(右半部分)的像素值減去偶數(shù)列(左半部分),結(jié)果進(jìn)行差分調(diào)整后存儲(chǔ)在右半部分,完成小波行變換運(yùn)算。 參數(shù)說明: picWidth 為原始圖像的寬度, width、 height 為每層小波變換的區(qū)域, Data 存儲(chǔ)小波變 16 換圖像數(shù)據(jù)。 函數(shù)代碼如下: void CPictureDWT::PicRowDWT(unsigned int picWidth, unsigned int width, unsigned int height, unsigned char *Data) { LPBYTE picRowTemp = new BYTE[width * height]。 unsigned int i, j。 //定義臨時(shí)數(shù)據(jù)緩存 unsigned int nWidth = width / 2。 //行變換是將偶數(shù)列存儲(chǔ)在左邊,奇數(shù)列存儲(chǔ)在右邊 unsigned int value1, value2。 //中間變量 for(i=0。 iheight。 i++) { //行數(shù) for(j=0。 jnWidth。 j++) { //列數(shù) unsigned int both = 2 * j。 //存儲(chǔ)偶數(shù)列 value1 = i * width + j。 value2 = i * picWidth + both。 //存儲(chǔ)奇數(shù)列 picRowTemp[value1] = Data[value2]。 picRowTemp[value1 + nWidth] = Data[value2 +1]。 //差分變換并將結(jié)果進(jìn)行調(diào)整,完成小波行變換 picRowTemp[value1 + nWidth] = ( picRowTemp[value1 + nWidth] picRowTemp[value1] + 256 ) % 256。 }//for_2 }//for_1 for(i=0。 iheight。 i++) { for(j=0。 jwidth。 j++) { //將小波變換后的數(shù)據(jù)存儲(chǔ)到圖 像 數(shù)據(jù)存儲(chǔ)區(qū) Data[i * picWidth + j] = picRowTemp[i * width + j]。 }//for_2 }//for_1 delete picRowTemp。 //刪除臨時(shí)存儲(chǔ)空間 } 2. 小波列變換函數(shù) 函數(shù)功能:小波變換分為行變換和列變換兩個(gè)部分,完成一次行變換,再作一次列變換就完成一次小波變換運(yùn)算,將圖像分成 4個(gè) 1/4區(qū)域。小波列變換就是完成小波變換第二步運(yùn)算。 實(shí)現(xiàn)算法描述:與小波行變換不同的是,小波列變換是將圖像的偶數(shù)行存儲(chǔ)在下半部分,奇數(shù)行存儲(chǔ)在上半部分,再將奇數(shù)行(上半部分)減去偶數(shù)行(下半部分),結(jié)果進(jìn)行差分調(diào) 整后存儲(chǔ)在上半部分。如原始掩體圖像小波列變換后的效果圖如圖 23右所示。 參數(shù)說明: picWidth 為原始圖像的寬度, width、 height 為每層小波變換的區(qū)域, Data 存儲(chǔ)小波變換圖像數(shù)據(jù)。 函數(shù)代碼如下: void CPictureDWT::PicLineDWT (unsigned int picWidth, unsigned int width, unsigned int height, unsigned 17 char *Data) { //分配圖像數(shù)據(jù)臨時(shí)存儲(chǔ)空間 LPBYTE picLineTemp = new BYTE[width * height]。 unsigned int m,n。 //小波列變換是將偶數(shù)行存儲(chǔ)在圖像緩存上半部分,奇數(shù)行存儲(chǔ)下部分 unsigned int nHeight = height / 2。 unsigned int value1, value2。 //中間變量 for(m=0。 mwidth。 m++) { for(n=0。 nnHeight。 n++) { unsigned int both = 2 * n。 value1 = n * width + m。 value2 = (n + nHeight) * width + m。 //存儲(chǔ)偶數(shù)行 picLineTemp[value1] = Data[both * picWidth + m]。 //存儲(chǔ)奇數(shù)行 picLineTemp[value2] = Data[(both + 1) * picWidth + m]。 //差分變換并將結(jié)果進(jìn)行調(diào)整,完成小波列變換 picLineTemp[value2] = ( picLineTemp[value2] picLineTemp[value1] + 256 ) % 256。 }//for_2 }//for_1 for(m=0。 mwidth。 m++) { for(n=0。 nheight。 n++) { Data[n * picWidth + m] = picLineTemp[n * width + m]。
點(diǎn)擊復(fù)制文檔內(nèi)容
黨政相關(guān)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1