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

正文內容

基于離散小波變換的圖像數(shù)字水印技術論文-閱讀頁

2024-11-28 01:25本頁面
  

【正文】 在 。 ( a) ( b) 圖 31 水印嵌入系統(tǒng)流程圖 水印提取流程圖,如圖 32所示,其中圖 a為水印提取流程圖,圖 b為原始圖像處理流程圖。 實現(xiàn)算法描述:由于水印為 8bit 的圖像,所以對于置亂后的水印分辨率層 G L1 和 L0,經(jīng)位分解操作后都有 8個位平面,嵌入函數(shù)首先計算出 HL3( 圖 23 所示 ) 中能嵌入 G2位平 面的個數(shù),如果個數(shù)大于或等于 8,則將位平面全部嵌入到 HL3中;否則 HL3和 LH3中分別嵌入 4位平面,在嵌入過程中需對位平面嵌入的位置作準確的計算。 參數(shù)說明: wmHeight、 wmWidth為水印圖像的高和寬, picHeight、 picWidth為原始圖像的高和寬,PictureData 存儲原始圖像3層小波變換后的小波系數(shù)的數(shù)據(jù), WaterData 存儲水印位平面信息,picBits、 wmBits分別為原始圖像和水印圖像的位數(shù)。 unsigned int i = 0, j = 0。 //time為將要嵌入的位平面序號 unsigned int position = time line * (picWidth / wmWidth)。 iwmHeight。 jwmWidth。 }//for1 //(line * wmHeight)是控制每行能嵌入的位平面數(shù) }//for2 }//if else if(time = 4) { //number8時,則位平面要分別嵌入到 HL和 LH塊, time=4時,位平面嵌入到 LH 塊 line = (unsigned int)((time % 4) / (picWidth / wmWidth))。 //水印圖像嵌入的寬度上的位置 for(i=0。 i++) { for(j=0。 j++) { //(line * wmHeight)是控制每行能嵌入的位平面數(shù) PictureData[ ((line * wmHeight) + i) * width + picWidth + (position * wmWidth) + j] += WaterData[i * wmWidth + j]。 實現(xiàn)算法描述:水印提取過成中,首先打開嵌有水印的圖像,將其進行 3層離散小波變換,再打開原始水印掩體圖像,同樣作三層離散 小波變換。提取的位平面順序為從低位到高位,計算層數(shù)據(jù)值可描述為 ,Y=Y+x*pow (2,n),( 0≤ n≤ 7)其中 Y 為水印層分辨率數(shù)據(jù)值, x為位平面值, pow為求冪函數(shù), n為位平面在 8個 15 位平面中的序號。 參數(shù)說明: height、 width為水印圖像的高和寬, picHeight、 picWidth為原始圖像的高和寬, picData存儲原始圖像3層小波變換后的小波系數(shù)的數(shù)據(jù), wmData 存儲原始圖像3層小波變換后的小波系數(shù),Out存儲提取的水印分辨率層信息。 iwidth。 jheight。 } //位 平面點的位置 else { value1 = picWidth / m + (unsigned int((n % 4) / 2) * height + i) * picWidth。 if(picData[value1] != wmData[value1]) value2 = 1。 Out[i * (picWidth / 4) + j] += ( value2 * unsigned int(pow(2, n)) )。 實現(xiàn)算法描述:圖像像素值可存儲在一個二維數(shù)組中, 小波行變換是將圖像 偶數(shù)列存儲在左 半部分 ,奇數(shù)列存儲在右 半部分,然 后用奇數(shù)列(右半部分)的像素值減去偶數(shù)列(左半部分),結果進行差分調整后存儲在右半部分,完成小波行變換運算。 函數(shù)代碼如下: void CPictureDWT::PicRowDWT(unsigned int picWidth, unsigned int width, unsigned int height, unsigned char *Data) { LPBYTE picRowTemp = new BYTE[width * height]。 //定義臨時數(shù)據(jù)緩存 unsigned int nWidth = width / 2。 //中間變量 for(i=0。 i++) { //行數(shù) for(j=0。 j++) { //列數(shù) unsigned int both = 2 * j。 value2 = i * picWidth + both。 picRowTemp[value1 + nWidth] = Data[value2 +1]。 }//for_2 }//for_1 for(i=0。 i++) { for(j=0。 j++) { //將小波變換后的數(shù)據(jù)存儲到圖 像 數(shù)據(jù)存儲區(qū) Data[i * picWidth + j] = picRowTemp[i * width + j]。 //刪除臨時存儲空間 } 2. 小波列變換函數(shù) 函數(shù)功能:小波變換分為行變換和列變換兩個部分,完成一次行變換,再作一次列變換就完成一次小波變換運算,將圖像分成 4個 1/4區(qū)域。 實現(xiàn)算法描述:與小波行變換不同的是,小波列變換是將圖像的偶數(shù)行存儲在下半部分,奇數(shù)行存儲在上半部分,再將奇數(shù)行(上半部分)減去偶數(shù)行(下半部分),結果進行差分調 整后存儲在上半部分。 參數(shù)說明: picWidth 為原始圖像的寬度, width、 height 為每層小波變換的區(qū)域, Data 存儲小波變換圖像數(shù)據(jù)。 unsigned int m,n。 unsigned int value1, value2。 mwidth。 nnHeight。 value1 = n * width + m。 //存儲偶數(shù)行 picLineTemp[value1] = Data[both * picWidth + m]。 //差分變換并將結果進行調整,完成小波列變換 picLineTemp[value2] = ( picLineTemp[value2] picLineTemp[value1] + 256 ) % 256。 mwidth。 nheight。 //將小波列變換后的數(shù)據(jù)轉存到圖片數(shù)據(jù)存儲區(qū) }//for_2 }//for_1 delete picLineTemp。 實現(xiàn)算法描述:按公式( 23)所描述,為水印分辨率層的每個像素計算出其新的置亂后的位置,計算完每個像素新的位置后,更新分辨率層數(shù)據(jù),得到雜亂分布的分辨率層數(shù)據(jù)。 函數(shù)代碼如下: void CPicArnold::Arnold(unsigned char *Data, unsigned int width, unsigned int height, int times) 18 { //圖象置亂變換函數(shù) unsigned int n = width。 unsigned int i = 0, j = 0。 int k = 0。 iwidth。 jheight。 pixel_y = (i + 2 * j) % n。 } //將圖像數(shù)據(jù)存入到臨時緩存中 }//x39。=(x+2y)mod n for(i=0。 i++) { //更新圖像數(shù)據(jù)值 for(j=0。 j++) { Data[i * width + j] = Temp[i * width + j]。 } delete Temp。 }//CPicArnold::Arnold 2. Arnold置亂逆變換函數(shù) 函數(shù)功能:逆變換函數(shù)是計算出被置亂后的圖像每個像素在置亂前中的位置,以恢復出原始水印分辨率層。該算法假設了兩個變量 p 和 q,由 Arnold 正變換算法導出了四個方程組,然后再 根據(jù)像素值的取值范圍,計算出 p 和 q的可能取值,針對 p 和 q的取值組合,計算出各方程組的解,那么在所有方程組解中滿足像素值取值范圍的即為逆置亂的解。 參數(shù)說明: In 為要進行逆置亂處理的圖像的數(shù)據(jù), height、 width 為水印圖像的高和寬。 函數(shù)代碼如下: void CPicArnold::IrArnold(unsigned char *In, unsigned int width, unsigned int height, int times, int num) 19 { //求要進行逆置亂的水印層的寬度和高度 unsigned int n = width / num, w = width / num, h = height / num。 //分配臨時存儲空間,存儲每次逆置亂后的數(shù)據(jù) unsigned int i = 0, j = 0。 int k = 0。 iw。 jh。 y = j i。amp。amp。amp。 pixel_y = y。amp。amp。amp。 pixel_y = y + n。amp。amp。amp。 pixel_y = y。amp。amp。amp。 pixel_y = y + n。 }//for1 //將求得的解位置的數(shù)據(jù)暫粗存在臨時存儲緩存中 20 }//for2 for(i=0。 i++) { for(j=0。 j++) { //更新數(shù)據(jù),并返回 In[i * width + j] = Temp[i * w + j]。 }//while delete Temp。 } 系統(tǒng)界面設計 系統(tǒng)采用 VC 實現(xiàn),建立的為單文檔工程。另外,水印圖像的打開方式與原始掩體圖像的打開方式不同,避免了操作方式的單一化。 A、水印嵌入流程,點擊開始菜單里面的打開命令或文件按鈕,系統(tǒng)調用 Windows 標準文件打開對話框(圖 34),用戶找 到原始掩體圖像,選擇并點擊確定按鈕,這時打開原始掩體圖像 打開 水印圖像 21 會在左視圖顯示原始掩體圖像。當兩幅圖像都選取之后,用戶點擊嵌入按鈕,系統(tǒng)對打開的兩幅圖像格式和大小進行判斷,檢驗該水印圖像是否能作為水印嵌入到原始掩體圖像,如果不能,系統(tǒng)提示用戶重新選擇水印圖像。 B、水印提取過程,由于水印提取仍需 原始掩體圖像的參與,故設定在左視圖打開嵌有水印的圖像,在右視圖打開原始掩體圖像,提取的水印圖像顯示在右視圖。人們對新技術的好奇、盜版帶來的巨額利潤都會成為攻擊的動機(惡意攻擊);而且數(shù)字制品在存儲、分發(fā)、打印、掃描等過程中,也會引入各種失真(無意攻擊)。攻擊的目的在于使相應的圖像水印系統(tǒng)的檢測工具無法正確地恢復水印信號,或不能檢測到水印信號的存在。這些攻擊方法包括線性或非線性濾波、基于波形的圖像壓縮( JPEG)、添加噪聲、圖像裁減、圖像量化、模擬數(shù)字轉換等。這種攻擊一般是通過圖像的集合操作 完成的,如圖像放大、空間位移、旋轉、圖像裁減、重采樣以及一些幾何變形等。 22 3. 迷惑攻擊即試圖通過偽造原始圖像和原始水印來迷惑版權保護。 水印攻擊實例 本節(jié)介紹幾中圖像處理,采用 Photoshop 軟件,對嵌有水印的圖像進行添加雜色、亮度調整、圖像剪切等處理,檢測該算法的魯棒性。噪聲是妨礙人們感覺器官對所接收的信源信息理解的因素。由提取出的水印圖像可以看出,該算法對一般的噪聲攻擊有一定的魯棒 性。 亮度增強 改變嵌有水印信息圖像的亮度值,提取出嵌有的水印信息,檢測水印算法的魯棒性,結果如圖 53所示: ( a) ( b) 圖 53 亮度增強效果 ( a)為亮度增強后的圖像,( b)為提取出的水印信息,由效果可將,提取出的水印信息有一定的模糊,但仍能分辨出水印信息,因此該算法對圖像 亮度改變有一定魯棒性。 5 結論 數(shù)字水印技術是隨著網(wǎng)絡通訊與多媒體信號處理的發(fā)展而迅速發(fā)展起來的一個新的研究方向,主要用于數(shù)字產品的版權保護。 1. 本文主要做了以下工作: 查閱了大量有關數(shù)字水印技術的國內外文獻,對目前數(shù)字水印的主要特征、分類、現(xiàn)有算法及發(fā)展狀況作了介紹,為了進一步研究數(shù)字水印的算法奠定了基礎。水印預處理方法主要有:基于 Arnold 變換、幻方、 Hilbert 曲線、 Conway游戲、廣義 Gray碼變換、仿射變換、正交拉丁方變換等方法,在本文中主要應用的置亂方法是 Arnold
點擊復制文檔內容
黨政相關相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1