zoukankan      html  css  js  c++  java
  • 图象处理常用特效算法

    1.图像的逆反处理算法

    逆反处理的算法如下:
    设r,g,b分别为源图像像素f(i,j)的红,绿,蓝分量值,rr,gg,bb分别为处理后像素g(i,j)的红,绿,蓝分量值。则
    rr=255-r
    gg=255-g
    bb=255-b

    2.图像的平滑处理

    算法如下:
    平滑处理是指将源图像的每一个像素的颜色值由其相邻n*n个像素的平均值来代替。
    例如,对于3*3点阵而言,设原图像某像素的值为f(i,j),平滑处理后该像素的值为g(i,j),则:
    g(i,j)=(f(i,j)+f(i-1,j)+f(i+1,j)+f(i-1,j-1)+f(i,j-1)+f(i+1,j-1)+
    f(i-1,j+1)+f(i,j+1)+f(i+1,j+1))/9
    注意:该算法不能平滑图像边界的像素。

    3. 图象的霓虹处理

    算法:
    对于3*3点阵,首先计算原图象像素f(i,j)的红,绿,蓝分量与相同行f(i+1,j)及同列f(i,j+1)相邻象素的梯度,即差的平方之和的平方根,然后将梯度值作为处理后的象素g(i,j)的红,绿,蓝分量值。
    设 r1,g1,b1分别为原图象象素f(i,j)的红,绿,蓝分量值,r2,g2,b2分别为相同行相邻象素f(i+1,j)的红,绿,蓝分量值,r3,g3,b3分别为同列相邻象素f(i,j+1)的红,绿,蓝分量值,rr,gg,bb为处理后象素g(i,j)的红,绿,蓝分量值,则:
    rr1=(r1-r2)^2  rr2=(r1-r3)^2
    gg1=(g1-g2)^2  gg2=(g1-g3)^2
    bb1=(b1-b2)^2  bb2(b1-b3)^2
    rr=2*(rr1+rr2)^0.5
    gg=2*(gg1+gg2)^0.5
    bb=2*(bb1+bb2)^0.5

    4.图象的锐化处理

    锐化处理的算法:
    计算原图像像素f(i,j)的像素值与该像素与相邻像素f(i-1,j-1)像素值之差的绝对值得百分比之和,作为处理后图像像素g(i,j)的像素值。例如,设r1,g1,b1分别为f(i,j)的红、绿、蓝分量值,r2,g2,b2分别为f(i-1,j-1)的红、绿、蓝分量值,rr,gg,bb分别为g(i,j)的红、绿、蓝分量值,则:
    rr=r1+0.25*abs(r1-r2)
    gg=g1+0.25*abs(g1-g2)
    bb=b1+0.25*abs(b1-b2)

    5. 图像的浮雕处理

    算法:
    位图图像的浮雕处理的算法是:
    g(i,j)=f(i,j)-f(i-1,j)+常数
    式中,g(i,j)为处理后图像的像素值,f(i,j)为原图像的像素值,f(i-1,j)为前一个相邻像素的值。常数一般取128,即
    rr=r1-r2+128
    gg=g1-g2+128
    bb=b1-b2+128
    式中,r1,g1,b1分别为原图像的像素f(i,j)的红、绿、蓝分量值;r2,g2,b2分别为前一个相邻像素f(i-1,j)的红、绿、蓝分量值,rr,gg,bb,分别为处理后图像的像素g(i,j)的红、绿、蓝分量值.

    6.图像的镶嵌处理

    镶嵌处理算法如下:
    镶嵌处理后的图像每一小矩阵内的所有像素值都取此矩阵内原图像各像素值之和的平均值。例如,对于3*3的子域:
    g(i,j)=(f(i,j)+f(i-1,j)+f(i+1,j)+f(i-1,j-1)+f(i+1,j-1)+f(i-1,j+1)+f(i,j+1)+f(i+1,j+1))/9
    则取:
    g(i-1,j)=g(i,j)
    g(i+1,j)=g(i,j)
    g(i,j-1)=g(i,j)
    g(i,j+1)=g(i,j)
    g(i,j+1)=g(i,j)
    g(i-1,j-1)=g(i,j)
    g(i-1,j+1)=g(i,j)
    g(i+1,j-1)=g(i,j)
    g(i+1,j+1)=g(i,j)

    7.图像的灰度处理

    彩色图像灰度处理的算法如下:
    c=tuxing.GetPixel(i,j)
    r=c.R
    g=c.G
    b=c.B
    rr=g(r 64)*64
    gg=(g 64)*64
    bb=(b 64)*64

    8.图像缩小处理

    以坐标原点为中心,将图像个像素坐标的X分量和Y分量分别乘以Sx,Sy,则可使图像进行整体放大和缩小。这时,
    X'=X*Sx
    Y'=Y*Sy
    当Sx=Sy时,作相似变换;
    当Sx!=Sy时,产生变形。

    9.图像的平移处理

    图像的平移变换是将图形上的点(x,y)在x方向(水平方向)和y方向(垂直方向)
    分别移动dx和dy,则变换后点(x',y')坐标值为:
    x'=x+dx
    y'=y+dy


    10.图像的旋转变换

    二维图像的旋转变换是以原点为中心,将点(x,y)旋转a角度而得到新的坐标(x',y')的变换称为旋转变换。其数学表达式为:
    x'=x*cosa-y*sina
    y'=x*sina+y*cosa

    11.二维图像的对称变换

    二维图像对称变换有以下几种情况.
    1.以x轴为对称得对称变换。
    以x轴为对称得点(x,y)的对称点(x',y')坐标为:
    x'=x
    y'=-y
    2.以y轴为对称得对称变换。
    以y轴为对称的点(x,y)的对称点(x',y')坐标为:
    x'=-x
    y'=y
    3.以原点为对称的对称变换。
    以原点为对称得点(x,y)的对称点(x',y')坐标为:
    x'=-x
    y'=-y
    对图像的每一个像素依据二维图形几何变换公式进行计算后,在进行图像显示,则可得到图像的几何变换。

  • 相关阅读:
    又搬回来了233
    2017.10.2解题报告
    2017.10.1解题报告
    Android 百度地图开发(二)--- 定位功能之MyLocationOverlay,PopupOverlay的使用
    Last_IO_Errno: 1236 Last_IO_Error: Got fatal error 1236 from master when reading data from binary lo
    [Warning] Aborted connection 11203 to db: 'ide' user: 'nuc' host: 'prd01.mb.com' (Got an error writi
    浅析地方门户网优化的方法
    xxx==null和xxx.equals(null)的区别
    Java+7入门经典
    《UNIX环境高级编程》笔记--read函数,write函数,lseek函数
  • 原文地址:https://www.cnblogs.com/MaxWoods/p/1852855.html
Copyright © 2011-2022 走看看