QQ登录

只需一步,快速开始

登录 | 立即注册 | 找回密码
查看: 2577|回复: 1

求球型滤镜的C源代码

[复制链接]

classn_11

1

主题

2

帖子

15

积分

新手上路

Rank: 1

积分
15
发表于 2016-1-3 23:26:16 | 显示全部楼层 |阅读模式
你们好,我在校做一个软件课设,是有关图像失真的,查到这里有个球型滤镜,试了一下,效果非常好,我想用一下这个的C语言源代码,可是不知道联系谁,管理员到哪里去找。十分紧急,希望大家帮下忙。
回复

使用道具 举报

  • ta_mind
    开心
    2015-9-28 22:37
  • classn_01: 31 classn_02

    [LV.5]常住居民I

    56

    主题

    63

    帖子

    1369

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    1369
    发表于 2016-1-4 20:23:29 | 显示全部楼层
    //C语言版本      
        void SpherizeFilterProcess(unsigned char* srcData, int width, int height, int stride, unsigned char* dstData, int cenX, int cenY)
              {
                             unsigned char* pIn = srcData;
                             unsigned char* pOut = dstData;
                             unsigned char* p = NULL;
                             int offsetX = 0, offsetY = 0;
                             int newX = 0, newY = 0;
                             double radian = 0;
                             for (int y = 0; y < height; y++)
                             {
                                     for (int x = 0; x < width; x++)
                                     {
                                             offsetX = x - cenX;
                                             offsetY = y - cenY;
                                             radian = atan2(offsetY, offsetX);
                                             radius = (int)((offsetX * offsetX + offsetY * offsetY) / max(cenX, cenY));
                                             newX = (int)(radius * cos(radian)) + cenX;
                                             newY = (int)(radius * sin(radian)) + cenY;
                                             newX = min(w - 1, max(0, newX));
                                             newY = min(h - 1, max(0, newY));
                                             p = pIn + newY * stride + newX * 4;
                                             pOut[0] = p[0];
                                             pOut[1] = p[1];
                                             pOut[2] = p[2];
                                             pOut[3] = 255;                     
                                             pOut += 4;
                                     }
                                     pOut += stride - width * 4;
                             }           

             }
    回复 支持 反对

    使用道具 举报

    发表回复

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

      联系我们
    • QQ:3243218172
    • 邮箱:3243218172@qq.com
    • QQ交流群:567648913
      手机扫描二维码