PS 滤镜— —图像偏移
2024-10-15 09:57:18
clc;
clear all;
close all;
addpath('E:\PhotoShop Algortihm\Image Processing\PS Algorithm');
I=imread('4.jpg');
I=double(I);
Image=I/255;
xOffset=100;
yOffset=200;
warp=1;
[height, width, depth]=size(Image);
if (warp)
while(xOffset<0)
xOffset=xOffset+width;
end
while(yOffset<0)
yOffset=yOffset+height;
end
xOffset=mod(xOffset, width);
yOffset=mod(yOffset, height);
end
Image_new=Image;
for i=1:height
for j=1:width
if (warp)
x=mod(j+width-xOffset, width);
y=mod(i+height-yOffset, height);
else
x=j-xOffset;
y=i-yOffset;
end
if (x<=1) x=1; end
if (x>=width) x=width-1; end;
if (y>=height) y=height-1; end;
if (y<1) y=1; end;
% % if (x<=1) continue; end
% % if (x>=width) continue; end;
% % if (y>=height) continue; end;
% % if (y<1) continue; end;
x1=floor(x);
y1=floor(y);
p=x-x1;
q=y-y1;
Image_new(i,j,:)=(1-p)*(1-q)*Image(y1,x1,:)+p*(1-q)*Image(y1,x1+1,:)...
+q*(1-p)*Image(y1+1,x1,:)+p*q*Image(y1+1,x1+1,:);
end
end
imshow(Image_new);
imwrite(Image_new, 'out.jpg');
参考来源:http://www.jhlabs.com/index.html
原图:
效果图:
最新文章
- 利用JS实现自定义滚动条
- Oracle 使用小计(4)
- Base64编码解码
- 性能监视器(SSAS)
- .NET DLL 保护措施详解(四)各操作系统运行情况
- 第二十章、启动流程、模块管理与 Loader grub
- 我的第二篇--nginx安装问题之路径问题
- 我的vi/vim配置文件
- 记录一次坑爹的VM连接主机的路程
- Snow and Rainbow
- 【面试题】Java实现String的IndexOf方法
- 版本控制工具 - Git
- 学习笔记之English
- Webpack-dev-server的proxy用法
- C# AESCBC256 与 java AESCBC256 加解密
- 吐槽下mac的打印机设置
- Springboot学习笔记(六)-配置化注入
- Qt中的角度转弧度
- 深入理解php内核
- Fix ";Drives are running out of free space"; Error in SharePoint Health Analyzer