如何把灰度图像分成8×8块和访问每一块单独应用dct2块
35视图(30天)
显示旧的评论
我想把灰度图像在我的例子中是“摄影师。tif”到8×8块然后运行dct2每一块
后来隐藏一个二进制水印图像到每一块。
到目前为止,我试着blockproc和许多其他的方法,但没有一个满足我的需求。
2的评论
图像分析
2021年10月23日
编辑:图像分析
2021年10月23日
@dharaneesh govindaraj
,开始运行和理解我的附加blockproc()演示。然后适应它们的功能它运行fft2()而不是不管我使用。但从本质上说,这是什么Stephane下面。
接受的答案
Stephane Dauvillier
2019年4月29日
编辑:Stephane Dauvillier
2019年4月29日
文件=“cameraman.tif”;
我= imread(文件);
imshow (im);
为了使用
blockproc
你必须使用一个函数,accpts blocksstructure,这就是为什么你需要使用这样的东西
imModified = blockproc (im, [8], @ (blkStruct) dct2 (blkStruct.data));
imshow (imModified)
我希望这回答了你的问题
2的评论
Stephane Dauvillier
2019年4月29日
你有一个函数添加watermak吗?
假设你有你的函数
函数imageWithWatermak = myFunction (imageWithoutWatermark)
…
结束
然后你会做
blockproc (im, [8], @ myFunction (blkStruct) (blkStruct.data));
答案(1)
KALYAN ACHARJYA
2019年4月29日
编辑:KALYAN ACHARJYA
2019年4月29日
image1 = rgb2gray (imread (“test.jpg”));
(行投资银行部)= (image1)大小;
%垫使8 disible, im我这样行96投资200
% 96 alread被8整除,没有需要修改:12
%投资银行部200不需要修改:25
%,否则做零垫,需要行或投资,或两者兼而有之
结果= dct2 (image1 25 [12]);
%这个尺寸25[12]将在8×8块,每个块大小12 25
imshow(结果);
也有更简单的方法。