跪求大神知道这张动图帮我把这张图片上面的那两个字梦想和那双翅膀的颜色都改成第二张图上面那几个字的颜色一样可以吗

马赛克照片拼图的原则是用小的圖片拼成一张大的图片特点是保留了大图的信息,放大后仍能看到每一张小图的内容本文把马赛克照片拼图分为3类,分别为图1的框架型、图2的叠加型和图3的组合型

框架型只关注图像主体的形状,不关心形状的填充颜色如图1的心形的颜色不是重点。叠加型保留大图作為背景小图依次叠加在大图上。按我的理解“叠加型”并不能算作马赛克拼图,因为首先没有对图像进行马赛克处理;其次没有对圖像进行拼接;最后小图仅仅是以一定比例覆盖在大图上,小图的颜色不影响大图的内容最后一种是真正意义上的马赛克拼图,每一张尛图的主体颜色和大图的一个像素块的颜色相近

人脸数据集来自于香港中文大学,地址

  1. 在相应的网格内填充图片

首先定义马赛克处理函數

然后依次读取图片文件和二值化二值化时要选择合适的阈值,使得图像主体与背景尽量分开最后进行马赛克处理,效果图如下:
小圖填充的完整代码如下

% 首先生成和原图大小一致具有3通道的矩阵,背景默认是255(即白色) % 随机取出一张图片如果不是3通道,重新选取 % 修改取出图片的大小设置为设定值 % 到达图像边界时,切割小图

叠加型不需要对图像进行马赛克处理仅仅要求两张图片以一定权重叠加。假设有两张大小相同的图片 w的权重添加到输出图像 在这个例子中本文采用大小不一致的图片叠加,这意味着小图不再是间隔一定像素規则地叠加到背景图上这里采用掩模版的方法:创建一个大小和大图任意一个通道一致的矩阵,值取0或1遍历掩模版上所有的点,当 (i,j)开始取出大小和小图一致的掩模版并与小图相乘,最后以一定权重和背景图叠加并更新掩模版下图是 可以看到蓝色部分是不平整的。

  1. mask的實时情况如左图所示黑色表示已经被使用过(等于0),现在发现绿色点的位置 mask(i,j)=1可以看到从绿色点向行和列递增方向的可使用空间都不规則,无法满足小图的填充
  2. 根据小图的尺寸取出对应大小的掩模版,并与之相乘最后与背景图叠加,相当于队列操作最先进入的显示茬最上层,越后面显示越底层
maxRow = 50; % 小图最大行数,如果小图行数大于最大行数则调整大小 % img后面与小图可以直接相加,避免多个小图重叠处 % 如果小图的行数大于50,则随机调整行数在[30,50]范围内

组合图完全由图片拼合而成大图的颜色由小图的主体颜色决定。因此在一个位置像素块不再是由随机选取的小图填充,而是由大量图片中颜色最接近像素块的小图填充

}

我要回帖

更多关于 求大神 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信