ps
模糊滤镜
ps中“滤镜”/“模糊”菜单下提供了表面模糊、高斯模糊、方框模糊等十四种模糊命令,可以产生不同的模糊效果,能够起到柔化图像的作用。
- 模糊、进一步模糊及表面模糊
“模糊滤镜”通过缩减相邻像素点之间的颜色对比度来使图像变得柔和,画面整体产生轻微模糊现象。“模糊滤镜”位于“滤镜”下的“模糊”中。
相较于“模糊滤镜”,“进一步模糊”的作用效果更明显,所产生的模糊程度约为“模糊滤镜”的3-4倍。也就是说,执行一次“进一步模糊”所产生的模糊效果等同于执行3-4次“模糊滤镜”所产生的效果。
“模糊滤镜”和“进一步模糊”所产生的模糊效果对图像本身的作用微乎其微,而且这两种滤镜效果作用于图像整体,回事图像边缘位置同步产生模糊。“表面模糊”可以最大程度的对图像边缘进行保留,保持图像主体与背景的对比度。“表面模糊”多用于面部磨皮处理。
半径:以像素为单位,决定模糊取样区域的大小。
阙值:以色阶为单位,控制相邻像素色调值与中心像素值相差多大时才能成为模糊的一部分,改数值即为阙值。可根据图像的模糊需求进行调整,一般调整至“10-30”之间即可。
在“表面模糊”窗口中对“半径、阙值”下方的滑块进行移动时,可以结合预览图对图片效果进行观察,只需将“表面模糊”窗口右侧的“预览”选中即可预览效果。
- 高斯模糊
“高斯模糊”也称高斯平滑,而且参数设定中的“半径”选项数值越大,图像也就越模糊。“高斯模糊”是依据高斯曲线来对像素色值进行调节,将某一像素点周围的像素色值按高斯曲线进行统计,最后采用数学上的加权平均的计算方法得到最终的曲线色值。
高斯模糊窗口中的“半径”是指某个像素点向外扩散的值,数值越大,像素扩散的越大,图片也就越模糊。
- 动感模糊
“动感模糊”是模拟用固定的曝光时间给运动当中的物体拍照的效果。参数“角度”变化范围为-360°~360°,直接决定运动模糊的方向;“距离”参数决定像素移动距离,参数越大图像也就越模糊。适当的动感模糊效果可以增强图片本身的速度感,增强视觉冲击力。
使用“动感模糊”滤镜制作动感图片:
(1)在软件中打开素材图片并复制“背景图层。
(2)点击”快速蒙版模式编辑“按钮,为图层添加蒙版,使用画笔工具涂抹需要添加模糊效果的部位。
(3)涂抹完成后切换回标准模式,选在菜单栏中的选择-反选
(4)制作动感模糊效果:选择滤镜-模糊-动感模糊,根据预览视图进行调整。
- 方框模糊
”方框模糊“的工作模式是通过选取相邻像素的平均颜色来对图像执行模糊操作的,相关参数的值越大,模糊效果就越强烈。
应用:在ps中打开一张素材图片,选择菜单栏中的滤镜-模糊-方框模糊。
方框模糊窗口中的半径参数越大,图像也就越模糊
- 径向模糊
”径向模糊”滤镜可使图像产生旋转或放射的模糊效果,模糊中心可调整。径向模糊模拟的是在拍摄过程中旋转相机留下的影像效果,在后期处理中,“径向模糊”滤镜多被用于制作自然光照的效果。
锐化效果
锐化工具通过提高毗邻像素间的反差来还原虚化像素,一般作为图片后期处理当中的最后步骤。在后期处理图像时,锐化效果也多被用来处理模糊的素材图象,进而使图像的清晰度得到提升。
- USM锐化
“USM锐化滤镜”是通过增加图像边缘的对比度来还原虚化图像,简单来讲,这种锐化效果通过增强临近像素间的对比度,可使图像变得清晰。
数量:确定增加像素对比度的数量
半径:确定边缘像素周围影响锐化的像素数目。参数设置越大,边缘效果范围也就越广,锐化效果也就越突出。
阙值:确定锐化像素与周围像素间的差距
使用“USM锐化”滤镜对图片执行锐化时,锐化过度则会使图像边缘产生光晕效果,所以正在进行参数设置时需要观察预览效果以确保锐化效果的准确度
- 进一步锐化
在购物网站浏览商品详情页时,经常会看到局部放大的图片,可以使消费者更好的了解到服装面料或者产品细节,这种图片效果就是借助锐化工具的“进一步锐化”功能来实现的。
- 边缘锐化
边缘锐化作为一种图像处理方法,可以使图像边缘的对比效果更加明显,“锐化边缘效果”可依实际情况多次使用。
c
(1)
#include <stdio.h>
int main()
{
int x, y, z;
int n;
int cnt = 0;
int s = 0;
scanf("%d", &n);
for (x = 0; x <= n; x++)
{
for (y = 0; y <= n; y++)
{
z =n-(5*x+3*y);
if ((x+y+3*z)==n)
{
cnt++;
s+=x;
}
}
}
if (cnt == 0)
{
printf("%d -1", cnt);
}
else
{
printf("%d %d", cnt, s);
}
}
(2)
#include <stdio.h>
int main()
{
char Z;
int z;
int h,l;
int i,j;
z=(int)Z;
scanf("%c %d",&z,&h);
l=(h+1)/2;
for ( i = 1; i <=l; i++,z++)
{
for ( j =1 ; j <=h; j++)
{
if (j==(l-(i-1))||j==(l*2-(l-(i-1))))
{
printf("%c",z);
}
else
{
printf(" ");
}
if (j>=(l*2-(l-(i-1))))
{
break;
}
}
printf("\n");
}
z=z-2;
for ( i = l-1; i >= 1; i--,z--)
{
for ( j =1 ; j <=h; j++)
{
if (j==(l-(i-1))||j==(l*2-(l-(i-1))))
{
printf("%c",z);
}
else
{
printf(" ");
}
if (j>=(l*2-(l-(i-1))))
{
break;
}
}
printf("\n");
}
}
(3)
#include<stdio.h>
int common(int a,int b);
int main(){
int i,a,b,a1,b1,n;
int v,t,x;
scanf("%d",&n);
scanf("%d/%d",&a,&b);
for(i=1;i<n;i++){
scanf("%d/%d",&a1,&b1);
a=a*b1+b*a1;
b=b*b1;
v=common(a,b);
a=a/v;
b=b/v;
}
if(b==1) printf("%d",a);
else if(a>b){
t=a%b;
x=a/b;
if(t==0) printf("%d",x);
else printf("%d %d/%d",x,t,b);
}
else printf("%d/%d",a,b);
return 0;
}
int common(int a,int b){
int t;
while(b!=0){
t=a%b;
a=b;
b=t;
}
return a;
}
(4)
#include <stdio.h>
int main()
{
int n;
scanf("%d",&n);
int p=1;
int i=1;
while(i<n)
{
p*=10;
i++;
}
i=p;
while(i<p*10)
{
int t=i;
int sum=0;
while(t>0)
{
int d=t%10;
t/=10;
int k=1;
int j=0;
while (j<n)
{
k*=d;
j++;
}
sum+=k;
}
if(sum==i)
{
printf("%d\n",i);
}
i++;
}
return 0;
}
(5)
#include <stdio.h>
int s(int a)
{
int i;
int prime = 0;
for (i = 2; i < a; i++)
{
if (a % i == 0)
{
prime = 1;
}
}
return prime;
}
int main()
{
int i, j;
int a, b;
int cnt = 0;
scanf("%d", &a);
for ( i = a-1; i >1; i--)
{
b=s(i);
if (b==0)
{
printf("%6d",i);
cnt++;
}
if (cnt==10)
{
break;
}
}
}