全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:975
推到 Plurk!
推到 Facebook!

請問資料隱藏之問題

尚未結案
jeff6518
一般會員


發表:4
回覆:4
積分:1
註冊:2003-07-02

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-07-02 01:32:55 IP:61.231.xxx.xxx 未訂閱
有2章相同大小的圖片(bitmat),一張為灰階圖,另一張為binary圖,我要把運用最低位元嵌入法(LSB),將binary圖嵌入在該灰階圖,可是我嵌入之後整張圖卻有問題,會變成紅色的,請問我該怎麼做? 以下為我的部分程式碼: oid __fastcall TForm1::BitBtn1Click(TObject *Sender) { char a[128][128]; char b[128][128]; char c[128][128]; for (int i=0;i<=127;i ){ for (int j=0;j<=127;j ) { a[i][j]=Image1->Picture->Bitmap->Canvas->Pixels[i][j]; b[i][j]=((Image2->Picture->Bitmap->Canvas->Pixels[i][j/8])>>(7-j%8))&0x01; c[i][j]=a[i][j] & 11111110; c[i][j]=c[i][j] | b[i][j]; Image3->Picture->Bitmap->Canvas->Pixels[i][j]=c[i][j]; } } } 另外我還有一個問題:有2張皆為灰階的BITMAP圖,A大小為256*256,B大小為256*128,而將B圖的第一個pixel中的8-bit分為2部分,每個部分皆為4-bit,運用LSB法,第一個4-bit將嵌入到A圖的第一個pixel最低之4-bit,第二個4-bit將嵌入到A圖的第二個pixel最低之4-bit,而B圖的第二個pixel將嵌入到A圖之第3、4個pixel,以此類推..請問我該如何延續第一個問題的做法?還希望不吝賜教^^
JerryKuo
版主


發表:42
回覆:571
積分:322
註冊:2003-03-10

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-07-02 08:56:36 IP:61.230.xxx.xxx 未訂閱
引言: 有2章相同大小的圖片(bitmat),一張為灰階圖,另一張為binary圖,我要把運用最低位元嵌入法(LSB),將binary圖嵌入在該灰階圖,可是我嵌入之後整張圖卻有問題,會變成紅色的,請問我該怎麼做? 以下為我的部分程式碼: oid __fastcall TForm1::BitBtn1Click(TObject *Sender) { char a[128][128]; char b[128][128]; char c[128][128]; for (int i=0;i<=127;i ){ for (int j=0;j<=127;j ) { a[i][j]=Image1->Picture->Bitmap->Canvas->Pixels[i][j]; b[i][j]=((Image2->Picture->Bitmap->Canvas->Pixels[i][j/8])>>(7-j%8))&0x01; c[i][j]=a[i][j] & 11111110; c[i][j]=c[i][j] | b[i][j]; Image3->Picture->Bitmap->Canvas->Pixels[i][j]=c[i][j]; bitmap一個像素有三個元素,你的寫法他只顯示紅色的部分,請改成下面 Image3->Picture->Bitmap->Canvas->Pixels[i][j]=(TColor)RGB(c[i][j],c[i][j],c[i][j]); } } } 另外我還有一個問題:有2張皆為灰階的BITMAP圖,A大小為256*256,B大小為256*128,而將B圖的第一個pixel中的8-bit分為2部分,每個部分皆為4-bit,運用LSB法,第一個4-bit將嵌入到A圖的第一個pixel最低之4-bit,第二個4-bit將嵌入到A圖的第二個pixel最低之4-bit,而B圖的第二個pixel將嵌入到A圖之第3、4個pixel,以此類推..請問我該如何延續第一個問題的做法?還希望不吝賜教^^
RaynorPao
版主


發表:139
回覆:3622
積分:7025
註冊:2002-08-12

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-07-03 08:52:52 IP:203.73.xxx.xxx 未訂閱
引言: 有2章相同大小的圖片(bitmat),一張為灰階圖,另一張為binary圖,我要把運用最低位元嵌入法(LSB),將binary圖嵌入在該灰階圖,可是我嵌入之後整張圖卻有問題,會變成紅色的,請問我該怎麼做? 以下為我的部分程式碼: oid __fastcall TForm1::BitBtn1Click(TObject *Sender) { char a[128][128]; char b[128][128]; char c[128][128]; for (int i=0;i<=127;i ){ for (int j=0;j<=127;j ) { a[i][j]=Image1->Picture->Bitmap->Canvas->Pixels[i][j]; b[i][j]=((Image2->Picture->Bitmap->Canvas->Pixels[i][j/8])>>(7-j%8))&0x01; c[i][j]=a[i][j] & 11111110; c[i][j]=c[i][j] | b[i][j]; Image3->Picture->Bitmap->Canvas->Pixels[i][j]=c[i][j]; } } } 另外我還有一個問題:有2張皆為灰階的BITMAP圖,A大小為256*256,B大小為256*128,而將B圖的第一個pixel中的8-bit分為2部分,每個部分皆為4-bit,運用LSB法,第一個4-bit將嵌入到A圖的第一個pixel最低之4-bit,第二個4-bit將嵌入到A圖的第二個pixel最低之4-bit,而B圖的第二個pixel將嵌入到A圖之第3、4個pixel,以此類推..請問我該如何延續第一個問題的做法?還希望不吝賜教^^
jeff6518 你好: 請先參考以下這篇文章的做法(範例程式碼)
------
-- 若您已經得到滿意的答覆,請適時結案!! --
-- 欲知前世因,今生受者是;欲知來世果,今生做者是 --
-- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 --
JerryKuo
版主


發表:42
回覆:571
積分:322
註冊:2003-03-10

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-07-03 17:51:15 IP:61.230.xxx.xxx 未訂閱
引言:
char a1,a2,b,b1,b2;
char c[256][256];
for (int i=0;i<256;i  ){
 for (int j=0;j<128;j  )
   {
    a1 = GetRValue(Image1->Picture->Bitmap->Canvas->Pixels[i][2*j 1]);
    a2 = GetRValue(Image1->Picture->Bitmap->Canvas->Pixels[i][2*j 1]);
    b = GetGValue(Image2->Picture->Bitmap->Canvas->Pixels[i][j]);        b1          = b  & 00001111; 
    b2          = b  & 11110000;
    a1          = a1 & 11110000;
    c[i][j]     = a1 | b1;
    a2          = a2 & 11110000;
    c[2*i 1][j] = a2 | b2;        Image3->Picture->Bitmap->Canvas->Pixels[i][2*j]   =
                     (TColor)RGB(c[i][2*j],c[i][2*j],c[i][2*j]);
    Image3->Picture->Bitmap->Canvas->Pixels[i][2*j 1] = 
                     (TColor)RGB(c[i][2*j 1],c[i][2*j 1],c[i][2*j 1]);
   }
}  
jeff6518你好: 小弟對浮水印不太會,只能幫你改改... 隱藏的位置是a圖上下兩個像素(x,2y),(x,2y 1),各用b圖(x,y)像素前四個位元和後四個位元存入。 參考看看..... 發表人 -
jeff6518
一般會員


發表:4
回覆:4
積分:1
註冊:2003-07-02

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-07-04 09:24:09 IP:61.231.xxx.xxx 未訂閱
謝謝各位的幫忙~~^^
taishyang
站務副站長


發表:377
回覆:5490
積分:4563
註冊:2002-10-08

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-07-04 21:13:41 IP:140.135.xxx.xxx 未訂閱
jeff6518您好:       記得要結案給分以玆鼓勵喔
jeff6518
一般會員


發表:4
回覆:4
積分:1
註冊:2003-07-02

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-07-05 23:10:50 IP:61.231.xxx.xxx 未訂閱
    void __fastcall TForm1::BitBtn1Click(TObject *Sender) { char a[512][512]; char b[515][256]; char b1[512][256]; char b2[512][256]; char c[512][512]; for (int i=0;i<=511;i++){ for (int j=0;j<=511;j++){ a[i][j]=Image1->Canvas->Pixels[i][j]; c[i][j]=a[i][j] & 0xf0; } } for (int i=0;i<=511;i++){ for (int j=0;j<=255;j++){ b[i][j]=Image2->Canvas->Pixels[i][j]; b1[i][j]=(b[i][j] & 0xf0)>>4; b2[i][j]=b[i][j] & 0xf; } } for (int i=0;i<=511;i++){ for (int j=0;j<=255;j++){ c[i][j]=c[i][j] | b1[i][j]; } } for (int i=0;i<=511;i++){ for (int j=256;j<=511;j++){ c[i][j]=c[i][j] | b2[i][j]; } } for (int i=0;i<=511;i++){ for (int j=0;j<=511;j++){ Image3->Canvas->Pixels[i][j]=(TColor)RGB(c[i][j],c[i][j],c[i][j]); } } } /* 以上為小弟寫的程式,方法為將b圖的前4個bit藏入在a圖的上半部分,而將b圖的後4個bit藏入在a圖的下半部分 */ void __fastcall TForm1::BitBtn2Click(TObject *Sender) { char a[512][512]; char b[512][256]; char b1[512][256]; char b2[512][256]; char c[512][512]; for (int i=0;i<=511;i++){ for (int j=0;j<=255;j++){ a[i][j]=Image3->Canvas->Pixels[i][j]; b1[i][j]=(a[i][j] & 0xf)<<4 ; } } for (int i=0;i<=511;i++){ for (int j=255;j<=511;j++){ b[i][j]=Image3->Canvas->Pixels[i][j]; b2[i][j]=b[i][j] & 0xf; } } for (int i=0;i<=511;i++){ for (int j=0;j<=255;j++){ c[i][j]=b1[i][j] | b2[i][j]; } } for (int i=0;i<=511;i++){ for (int j=0;j<=255;j++){ Image4->Canvas->Pixels[i][j]=(TColor)RGB(c[i][j],c[i][j],c[i][j]); } } } 在將藏入的圖片取出還原時,在圖片的左邊會有一條黑線從上到下,可以幫我糾正一下其中的錯誤嗎?謝謝^^
jeff6518
一般會員


發表:4
回覆:4
積分:1
註冊:2003-07-02

發送簡訊給我
#8 引用回覆 回覆 發表時間:2003-07-05 23:19:47 IP:61.231.xxx.xxx 未訂閱
補充: 在還原時小弟是採用先將c圖(嵌入資料後的圖)中上半部分的後4-bit,放在d圖的後4-bit,在將此4-bit像左位移4;而c圖中下半不份的後4-bit則再放在d圖的後4-bit
JerryKuo
版主


發表:42
回覆:571
積分:322
註冊:2003-03-10

發送簡訊給我
#9 引用回覆 回覆 發表時間:2003-07-07 09:14:42 IP:61.230.xxx.xxx 未訂閱
jeff6518你好: 可以請你把那張圖秀一下嗎?這樣比較好對照你的程式
jeff6518
一般會員


發表:4
回覆:4
積分:1
註冊:2003-07-02

發送簡訊給我
#10 引用回覆 回覆 發表時間:2003-07-07 10:57:28 IP:61.231.xxx.xxx 未訂閱
還原的圖如下:
JerryKuo
版主


發表:42
回覆:571
積分:322
註冊:2003-03-10

發送簡訊給我
#11 引用回覆 回覆 發表時間:2003-07-09 19:18:56 IP:61.230.xxx.xxx 未訂閱
引言: 還原的圖如下:
你好: 實在看不出哪裡有錯,你可以在i = 0地方檢查看看.. 看看是不是原圖本來就有,還是另原因?
系統時間:2024-04-29 13:13:32
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!