精华内容
下载资源
问答
  • c# 3D图形处理

    千次阅读 2018-08-05 13:54:00
    c# 3D图形处理库 C#的OpenGL类库SharpGL SharpGL 可以让你在 Windows Forms 或者 WPF 应用中轻松的使用 OpenGL 开发图形应用。更多SharpGL信息 Axiom 3D Engine Axiom 3D Engine 是一...

    c# 3D图形处理库

    posted @ 2018-08-05 13:54 AndyZhaolsh 阅读(...) 评论(...) 编辑 收藏

    展开全文
  • 个人感觉qt和c++有点相似,没接触过c++,但是对图像的处理有一定的兴趣,linux下有没有专门的图形处理函数?帮忙发下资料,不胜感激。
  • opencv 图形处理

    万次阅读 2019-09-20 11:26:45
    扩充src边缘,将图像变大,便于处理边界,该函数调用了cv::borderInterpolate, 参数: src,dst:原图与目标图像。 top,bottom,left,right 分别表示在原图四周扩充边缘的大小。 borderType: 扩充边缘的类型,...

    扩充边缘

    函数:copyMakeBorder

    函数原型:

    void copyMakeBorder( const Mat& src, Mat& dst,int top, int bottom, int left, int right,int borderType, const Scalar& value=Scalar() );
    

    功能

    扩充src边缘,将图像变大,便于处理边界,该函数调用了cv::borderInterpolate,

    参数:

    src,dst:原图与目标图像。
    top,bottom,left,right 分别表示在原图四周扩充边缘的大小。
    borderType: 扩充边缘的类型,OpenCV中给出以下几种方式。
    value :当borderType为BORDER_CONSTANT时,需要填充的常量像素值。

    borderType的宏定义说明

    /*
     Various border types, image boundaries are denoted with '|'
     * BORDER_REPLICATE:     aaaaaa|abcdefgh|hhhhhhh
     * BORDER_REFLECT:       fedcba|abcdefgh|hgfedcb
     * BORDER_REFLECT_101:   gfedcb|abcdefgh|gfedcba
     * BORDER_WRAP:          cdefgh|abcdefgh|abcdefg
     * BORDER_CONSTANT:      iiiiii|abcdefgh|iiiiiii  with some specified 'i'
     */
    

    BORDER_REPLICATE:复制法,也就是复制最边缘像素。
    BORDER_REFLECT_101:对称法,也就是以最边缘像素为轴,对称。
    BORDER_CONSTANT:常量法。

    Demo

    copyMakeBorder(src, src, 2, 2, 2, 2,BORDER_CONSTANT,Scalar(0,0,255));
    copyMakeBorder(src, dst, 8, 8, 8, 8,BORDER_REPLICATE);
    

    旋转

    函数

    getRotationMatrix2D函数 求得旋转矩阵
    warpAffine函数 实现仿射变换

    函数原型

    Mat getRotationMatrix2D(Point2f center,double angle,double scale)
    
    void warpAffine (InputArray src,
            OutputArray     dst,
            InputArray      M,
            Size            dsize,
            int             flags = INTER_LINEAR,
            int             borderMode = BORDER_CONSTANT,
            const Scalar &  borderValue = Scalar() )
    

    参数:

    getRotationMatrix2D 参数:

    Point2f center:表示旋转的中心点
    double angle:表示旋转的角度 负数表示逆时针旋转
    double scale:图像缩放因子

    warpAffine 参数

    src: 输入图像
    dst: 输出图像,尺寸由dsize指定,图像类型与原图像一致
    M: 2X3的变换矩阵
    dsize: 指定图像输出尺寸
    flags: 插值算法标识符,有默认值INTER_LINEAR,如果插值算法为WARP_INVERSE_MAP, warpAffine函数使用如下矩阵进行图像转换
    borderMode: 边界像素模式(和扩展边缘一致),有默认值BORDER_CONSTANT
    borderValue: 边界取值,有默认值Scalar()即0

    dst(x,y) = src(M11x + M12y + M13,M21x + M22y +M23)

    flags 插值算法标志符
    标志符 含义
    INTER_NEAREST 最临近插值算法
    INTER_LINEAR 线性插值算法
    INTER_AREA 区域插值
    INTER_CUBIC 三次样条插值
    INTER_LANCZOS4 Lanczos插值

    Demo

    float radian = (float)(45 / 180.0 * CV_PI);
    float result = 1.00 / cos(radian);
    //填充图像
    int maxBorder = (int)(max(src.cols, src.rows)* result); //即为sqrt(2)*max
    int dx = (maxBorder - src.cols) / 2;
    int dy = (maxBorder - src.rows) / 2;
    //dy, dy, dx, dx : 上下左右添加像素个数
    copyMakeBorder(src, dst, dy, dy, dx, dx, IPL_BORDER_REPLICATE);
    
    //旋转
    Point2f center((float)(dst.cols / 2), (float)(dst.rows / 2));
    Mat affine_matrix = getRotationMatrix2D(center, 45, 1.0);//求得旋转矩阵
    warpAffine(dst, dst, affine_matrix, dst.size(),INTER_LINEAR,BORDER_REPLICATE);
    
    //计算图像旋转之后包含图像的最大的矩形
    float sinVal = abs(sin(radian));
    float cosVal = abs(cos(radian));
    Size targetSize((int)(src.cols * cosVal + src.rows * sinVal),(int)(src.cols * sinVal + src.rows * cosVal));
    
    //剪掉多余边框
    int x = (dst.cols - targetSize.width) / 2;
    int y = (dst.rows - targetSize.height) / 2;
    Rect rect(x, y, targetSize.width, targetSize.height);
    dst = Mat(dst, rect);
    
    展开全文
  • GPU图形处理管线、图形硬件接口(OpenGL)与可编程图形渲染语言(CG)的关系 1. 现代的硬件设备已经可以使的所有的图形操作在硬件上进行,在图形渲染管线上的操作都是由GPU来完成的,除非在程序中显示调用的那些...

    GPU图形处理管线、图形硬件接口(OpenGL)与可编程图形渲染语言(CG)的关系

    1. 现代的硬件设备已经可以使的所有的图形操作在硬件上进行,在图形渲染管线上的操作都是由GPU来完成的,除非在程序中显示调用的那些数学计算之外(这是在CPU上的),所以默认的写的所有图形渲染程序都是由硬件加速的。GPU的图形处理管线如下:


     

    2. 所有的图形硬件接口,如OpenGL和D3D都提供了程序员访问图形硬件的接口,用他们编写的程序是不可硬件编程的,因为他们采用的是他们提供的固定渲染管线,即根据用户提供的各种绘制数据与渲染参数,用固定顺序固定规则的渲染管线来提交给硬件渲染,当然这些提交给硬件的操作也是在GPU上进行的,用他们进行图形渲染也由一套处理管线(虽然是固定套路的),这个管线是与GPU的图形处理管线相符的,OPENGL的如下:

       这里面有顶点数据和像素数据两条通路,顶点数据即我们常说的三维图形数据,下面的则是二维图像数据,通路稍微简单。OPENGL只是定义了这个阶段所有的操作,具体的操作还是传给图形硬件做的,其中的per-vertexoperation属于图形硬件的顶点操作,是在顶点处理器里完成的,里面包括了model-view矩阵的操作,以及纹理坐标,光照等计算,而primtive assembly则包括了projection矩阵操作以及viewport变换,所以整个模块执行了图形学里顶点变换的内容,并且进行了纹理光照的内容。(具体每个模块的功能还可以参考OPENGL红宝书),这部分可以程序员自己编程,per-fragment也是,不采用可编程语言的则采用OPENGL固定的管线和处理方式。在per-vertex operation和per-fragment operation中有很多操作,可以在进行顶点和片断编程时自己进行设置。
    3. 对于现代的图形硬件来说,可以支持顶点可编程和片断可编程,虽然这些图形硬件接口(OpenGL)们已经在内部实现来这样的接口,但是他们的渲染管线是固定号来的,程序员无法自由随意的使用硬件的两个处理器,所以就有了可编程图形渲染语言,例如CG,选择用可编程的图形渲染语言,就意味着不采用OPENGL等提供的默认的固定的渲染管线,而是自己指定在两个可编程处理器上的操作,这就是可编程图形渲染的意义

    4. 可编程图形渲染语言与图形硬件接口的区别,首先他们在效率上,他们的渲染管线都是在GPU上的,只不过后者的管线已经确定,而前者在两个处理器上的操作可以自己设定。但是可编程语言它只是一个运行在GPU的两个处理器上的脚本,而不是一个独立的程序,所以它要依赖于图形硬件接口,也就是在典型的CG程序中,基本就是在OPENGL的程序中加上两个小的脚本语言,也就是说大部分的管线上的其他操作需要用图形硬件接口进行访问,但是到了两个处理器到地方就需要用CG语言了。这是二者到依存关系。使用编程渲染语言到好处有,可以自由设定GPU处理器上到操作,可以把更多的在COU上的计算也转移到GPU上,提高效率,加速硬件,有些操作是OPENGL等他们固定等渲染管线上是没有的也没有办法提供的,这些操作用CG语言等可能就会很容易并高效等执行。说到底,二者都运行于当前都图形硬件上,并且遵从硬件的渲染管线,可不可编程在于当管线走到顶点处理器于片断处理器时时采用固定默认的线路(图形硬件接口)还是程序员指定的操作(可编程图形渲染语言)。

    展开全文
  • .NET Core跨平台图形处理库ImageSharp

    千次阅读 2016-11-10 07:09:20
    ImageSharp 是支持.NET Core跨平台图形处理库,ImageSharp是ImageProcessor 的.NET Core跨平台实现.

    ImageSharp 是支持.NET Core跨平台图形处理库,ImageSharp是ImageProcessor 的.NET Core跨平台实现。

    ImageSharp 支持如下操作:

    调整大小,裁剪,翻转,旋转,边缘检测等。

    支持BMP,PNG,GIF,JPEG 编码器。

    EXIF 读取和针对JPEG写。

    暂时还不支持Drawing ,即无法支持验证码及水印等操作。

    GitHub:https://github.com/JimBobSquarePants/ImageSharp

    目前版本为1.0.0-alpha7。 

    新建项目

    新建一个.NET Core 控制台应用程序。

    添加引用

    由于目前还是alpha版,还未放置在NuGet 中,是在MyGet上 https://www.myget.org/gallery/imagesharp。

    在NuGet 程序包源中加入 ImageSharp 源。

    ImageSharp 源地址:https://www.myget.org/F/imagesharp

    640?wx_fmt=png

     

    然后在NuGet控制台执行命令:

    Install-Package ImageSharp -Version 1.0.0-alpha7

    编写代码

    首先我们需要一张图,将其放置于程序根目录下命令为lena.jpg。

    640?wx_fmt=jpeg

    示例代码如下:

    640?wx_fmt=gif

            public static void Main(string[] args)
            {      
              
    //读取EXIF using (FileStream input = File.OpenRead("lena.jpg"))            {                Image image = new Image(input);                var exif = image.ExifProfile.Values;                foreach (var item in exif)                {                    Console.WriteLine(item.Tag+":"+item.Value);                }            }                        //缩放 using (FileStream input = File.OpenRead("lena.jpg"))            using (FileStream output = File.OpenWrite("lena2.jpg"))            {                Image image = new Image(input);                image.Resize(image.Width / 2, image.Height / 2)                     .Save(output);            }            //裁剪 using (FileStream input = File.OpenRead("lena.jpg"))      
           
    using (FileStream output = File.OpenWrite("lena3.jpg"))            {                Image image = new Image(input);                image.Crop(image.Width / 2, image.Height / 2)                     .Save(output);            }            //旋转180° using (FileStream input = File.OpenRead("lena.jpg"))          
           
    using (FileStream output = File.OpenWrite("lena4.jpg"))            {                Image image = new Image(input);                image.Rotate(RotateType.Rotate180)                     .Save(output);            }            //设置像素点方式简单画空白 using (FileStream output = File.OpenWrite("lena5.jpg"))            {                Image image = new Image(100,200);                Color[] colors = new Color[20000];                for (int i = 0; i < 20000; i++)                {                    colors[i] = Color.White;                }                image.SetPixels(100, 200, colors);                image.Save(output);            }            Console.ReadKey();        }

    运行程序会在程序根目录下得到如下的图

    640?wx_fmt=png

     

    以上也就是 ImageSharp 的简单使用,更多可以查看官方GitHub。

    原文地址:http://www.cnblogs.com/linezero/p/ImageSharp.html


    .NET社区新闻,深度好文,微信中搜索dotNET跨平台或扫描二维码关注

    640?wx_fmt=jpeg

    展开全文
  • MATLAB绘图与图形处理(1)

    千次阅读 2015-12-30 11:16:08
    第7章 绘图与图形处理 人们很难从一大堆原始的数据中发现它们的含义,而数据图形恰能使视觉感官直接感受到数据的许多内在本质,发现数据的内在联系。MATLAB可以表达出数据的二维,三维,甚至四维的图形。通过...
  • C语言图形处理

    千次阅读 2016-02-29 10:44:11
    本文主要介绍了一些使用c语言在Turbo C环境下编写图形绘制等问题的方法。
  • Java的图形处理中经常使用第一个坐标方式
  • Delphi GDI+ 图形处理(2)

    千次阅读 2013-04-05 14:14:40
    比如一个程序使用了标签控件,它看起来似乎并没有用到什么图形处理,但实际上标签控件就是通过使用GDI库中的图形处理函数来实现的。可见图形处理在编程中的重要性。 图像处理在实际的应用中也极具价值。
  • 服务器端图形处理

    千次阅读 2007-04-05 10:33:00
    Java最初是以Applet等客户端图形处理为技术起点的,而本节讨论的是如何在Servlet/JSP中实现图形处理。在Jive中,图片可以用来显示用户的头像,用户在上传自己头像图片时,该图片的大小可能不一,但是由于版面原因,...
  • 很好用的的图形处理工具convert和播放工具display,都集成在工具imagemagick中,安装时apt-get install imagemagick即可。
  • 图形处理 OpenGL硬件加速

    万次阅读 2009-12-28 21:43:00
    OpenGL被设计成独立于硬件,独立于窗口系统,在运行各种操作系统的各种计算机上都可用,并能在网络环境下以客户/服务器模式工作,是专业图形处理、科学计算等高端应用领域的标准图形库。Windows下常用的OpenGL库有两...
  • 英伟达图形处理单元(GPU)驱动安装指南 本文档适用于熟悉Linux环境并从命令行编译C程序的读者。注意:本指南仅适用于安装了X Windows的系统上的安装. 注意:本文档中的许多命令可能需要超级用户权限。在大多数...
  • 浅谈 Google Skia 图形处理引擎 (转载)

    千次阅读 2016-08-31 12:05:47
    2008 年九月,Google 宣布以改良过的 WebKit 为核心的网络浏览器 Chrome,..., 后者是个 2D 向量图形处理函式库,包含字型、坐标转换,以及位图都有高效能且简洁的表现。不仅用于 Google Chrome 浏览器,新兴
  • skia是个2D向量图形处理函数库

    千次阅读 2014-04-27 21:04:11
    skia是个2D向量图形处理函数库,包含字型、坐标转换,以及点阵图都有高效能且简洁的表现。不仅用于Google Chrome浏览器,新兴的Android开放手机平台也采用skia作为绘图处理,搭配OpenGL/ES与特定的硬件特征,强化...
  • 开放源码社区一直因为缺少以用户为中心的应用软件而饱受诟病。从一个每天都使用开源桌面和服务环境的用户角度来看,我也支持很多开源应用不如商业解决方案华丽的抱怨,...我们这里就将介绍五种开源的图形处理应用软...
  • 图形处理--线性插值算法细节

    千次阅读 2010-02-27 20:09:00
    图形处理--线性插值算法细节2008年09月10日 星期三 11:13这是一篇关于图形处理线性插值算法细节的文章,转载此文的目的在于能给那些对图像处理算法感兴趣的网友一些启示,对于大量的入门网友来说,这样的文章或许...
  • python图形处理库PIL(Python Image Library)的介绍 关于PIL库的一些概念 pil能处理的图片类型 pil可以处理光栅图片(像素数据组成的的块)。 通道 一个图片可以包含一到多个数据通道,如果这些通道具有...
  • ArcMap 中包含一系列可用于处理图形图形文本的工具。可在绘图 工具条上找到这些工具。使用这些工具可创建和编辑图形。您可以快速地绘制新的正方形、线、圆和多边形等图形,并且通过单击工具即可更改它们的外观。...
  • 已知线形超声传感器由128个发射/接收单元组成,相邻单元之间距离为0.19531mm,在t=0时刻,所有传感器同时发送一个宽度为1us的正弦波脉冲。如下图所示。随后得到128组采样信号(在附件rf.rar中,用matlab读入即可),...
  • VTK图形处理之剪切

    千次阅读 2017-09-24 17:11:54
    不过剪切是从一个完全不同的角度来处理的。剪切可以控制数据获取的区域,而抽取轮廓做不到这一点。  剪切操作需要一把”刀“——隐函数,并且要指剪切的位置——剪切值。给定了这两个参数后,就确定了切面——隐...
  • Android 图形处理特效 Matrix 的set 、 pre、post方法的区别和使用 Matrix包含一个3 X 3的矩阵,专门用于图像变换匹配。 Matrix提供了四种操作: translate(平移) rotate(旋转) scale(缩放) skew(错切) pre是在...
  • MFC的CImage图形处理

    千次阅读 2018-04-17 15:06:32
    使用这种方法记载的图形可以是DIB也或者是DDB图形,取决于绑定的HBITMAP是否是DIB图形,可以给予IsDIBSection判定(DIB: 设备无关图形 DDB:设备有关图形) 2. 图片指定到一个控件上 通常MFC内部控件使用到的是HBITMAP...
  • MATLAB绘图与图形处理

    千次阅读 2016-09-20 14:14:49
    7.2 三维图形 7.2.1 三维曲线、面填色命令 命令1 comet3 功能 三维空间中的彗星图。彗星图为一个三维的动画图像,彗星头(一个小圆圈)沿着数据指定的轨道前进,彗星体为跟在彗星头后面的一段痕迹,彗星轨道...
  • 但是点云数据中往往存在噪声,这样得到的重建网格通常都需要进行平滑处理。网格平滑是一种调整数据集中点坐标的技术。网格平滑的目的是提高网格的外观和提高单元数据集的形状。在平滑过程中,不会改变数据集的拓...
  • 在安卓开发中,可以实现类似于ps的那种对图形或者图像进行矫正的处理吗?比如说我有一张图片不清晰,我想通过安卓开发的app将这张图片的清晰度进行矫正,或者是将一张倾斜的图片矫正成正常的,请问能做到吗
  • CUDA图形处理学习

    2014-07-14 15:27:17
    最近有点想学习一下CUDA的图形处理,然后发一个帖子,请给位小伙伴来指点一下! CUDA里的图像拉伸有很多方法,比较常用的方法是将图像放大后,利用卷积对图像进行滤波处理。这种方法时间复杂度高,处理复杂。相对...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 42,469
精华内容 16,987
关键字:

图形处理