Re: [問題] 傅立葉濾鏡與隱形水印

作者: AmibaGelos (Amiba Gelos)   2016-12-04 17:01:09
閒閒沒事做來玩玩看lol
WaterMark[pic_?(3 == ArrayDepth@# &), mark_?(3 == ArrayDepth@# &)] /;
And @@ Thread[Dimensions[pic] >= Dimensions[mark]] :=
With[{lx = Length@mark, ly = Length@mark[[1]],
F = FourierDCT[#, 1] & /@ # &, ch = Transpose[#, {2, 3, 1}] &,
chinv = Transpose[#, {3, 1, 2}] &},
With[{XPerm = RandomSample@Range@lx,
YPerm = RandomSample@Range@ly}, {chinv@
Map[Round@Min[Max[#, 0], 255] &,
F[F@ch@pic + (PadLeft[#, Most@Dimensions@pic] & /@
ch@Table[mark[[i, j]], {i, XPerm}, {j, YPerm}])], {-1}],
Reverse@chinv[
Table[#[[i, j]], {i,
SortBy[Transpose@{Range[-lx, -1], XPerm}, Last][[All,
1]]}, {j,
SortBy[Transpose@{Range[-ly, -1], YPerm}, Last][[All,
1]]}] & /@ F@ch@#] &}]]
用Lena測試
foreground = Import["ExampleData/lena.tif", "Data"];
background =
Rasterize[Style["清心也可以", 20, White], Background -> Black][[1, 1]]/4;
{res, per} = WaterMark[foreground, background];
Image@(per@res/(255./4))
GraphicsRow[{Image@(res/255.), Image@(foreground/255.)}]
恩看起來還不錯~不過我不知道如何用MMA測試修圖的影響就是LOL
作者: AmibaGelos (Amiba Gelos)   2016-12-04 17:11:00
" target="_blank" rel="nofollow">
作者: jurian0101 (Hysterisis)   2016-12-05 15:12:00
來玩來玩
作者: AmibaGelos (Amiba Gelos)   2016-12-06 12:05:00
" target="_blank" rel="nofollow">
作者: loterpeter (Vincent)   2016-12-08 20:58:00
怒推阿米巴

Links booklink

Contact Us: admin [ a t ] ucptt.com