السلام عليكم و رحمة الله وبركاته اعضاء المنتدى الكرام
لدي سؤال وهو كيفية عمل صورة مائية بتطبيق DCT و تقسيمها ل 8*8 blocks وتطبيقها على صورة رمادية ومن ثم استخراج هذه العلامة المائية
لدي الخوارزمية لكن اريد اتعلم كيف اعملها بالماتلاب
الخوارزمية :
Embedding Watermark:
1- Step 1: scaling down process of an image, which mean transfer a colored image into gray scale image.
2- Step 2: Block depended on DCT algorithm will takes the basic image and divides it into 8*8 blocks
3- Step 3: makes block address by take row value of basic image then take column value of that image.
4- Step 4 : For the embedding watermark image , with this formula
If binary value of secret image is 0
kx(i,j)=kx(i,j)+32;
If binary value of secret image is 1
kx(i,j)=kx(i,j)-32;
Where, kx= Respected Blocks, i= represents the index of row 1,2, 3… and j= represents the index of column 1,2, 3….
5- Step 5 : find out PSNR value of watermarked image :
PSNR = 20log(max(max(I)))/((MSE)^0.5)
Where MSE = (1/(mn)) *sum(sum((I-g). ^2))
Where PSNR is referring to Peak Signal to Noise Ratio and MSE is Mean Square Error, I represent the matrix data of our original image, g represents the matrix data of our degraded image in question, m represents the numbers of rows of pixels of the images and n represents the number of columns of pixels of the image.
Extracting Watermark :
1- Step 1: take the watermarked image, finding size of image, and convert into row column matrices.
2- Step 2: Get image block from row and column wise and divide this all block into 8*8 block.
3- Step 3: Extract each block and apply DCT algorithm on each of this blocks.
4- Step 4: Form all column in 32 *32 array and find difference between Blocks.
5- Step 5: If Difference >= 0 then, set watermark block value as 0 and
If Difference < 0 then, set watermark block value as 1
ياليت تعلموني الكود و تشرحوه لي
ولكم جزيل الشكر و العرفان