Chinaunix首页 | 论坛 | 博客
  • 博客访问: 5921
  • 博文数量: 1
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 10
  • 用 户 组: 普通用户
  • 注册时间: 2015-04-14 15:10
文章分类
文章存档

2017年(1)

我的朋友
最近访客

分类: Python/Ruby

2017-07-16 21:38:50

原文地址:wxpython基本图像处理--1 作者:LinCanYe

1、wx.Image和wx.Bitmap  (下面所有的图例,均左边为原图,右边为处理过的图!!)
    wx.Image用于加载和保存图片,而wx.Bitmap负责将图像显示到屏幕上
    补充:wx.Bitmap()显示图片好像是要求图片为bitmap的样式,而不能是Image样式(这是自己的猜想,下面两点是我自己验证过的,所以我的猜想应该也没有什么问题的)。
    (1)image = wx.Image("image.png",wx.BITMAP_TYPE_PNG)时,显示图像要这样写:wx.StaticBitmap(panel,-1,wx.BitmapFromImage(image))       ;
    (2)image = wx.Image("image.png",wx.BITMAP_TYPE_PNG).ConvertToBitmap(),显示图像时就可以写成:wx.StaticBitmap(panel,-1,image)
2、image.Scale(w/2,h/2)   这个指令为:缩小图片文件名为“image”的图片到原图的一半,如果是放大,就乘上要放大的倍数!
    这里缩放的前提是要得到原图像的Width和Height,可以用GetWidth()和GetHeight()方法获取原图的Width和Height。
    例如获取原图名为image的Width和Height,可以这样做:w = image.GetWidth(),h = image.Height()。这样做完的w,h值就是原图的Width和Height.

3、图像水平和垂直翻转:
    Mirror(horizontally = True),这个返回一个镜像图像。
    水平翻转image:image.Mirror(horizontally = True)

    垂直翻转image:image.Mirror(horizontally = Flase)


4、改变原图的尺寸,可以变成自己想要的任意大小:R额scale(Width,height),
    如:image.Rescale(200,150),这个指令执行后会将原图的Width=200,height=150,如下图:

这个方法可以用作任意缩放图像的处理方式之一!!

5、顺时针或逆时针旋转90度:Rotate90(clockwise = True/False),当clockwise=True时,顺时针旋转,clockwise=False时,图像逆时针旋转。如下图:




6、任意角度旋转,Rotate(angle,rotationCentre,interpolating = True,offsetAfterRotation = None),返回旋转原图后的一个新的图像。
angle:这是一个浮点数,代表旋转的弧度,而不是度数!(底下附上弧度和角度之间的换算关系)
rotationCentre:旋转的的中心,是一个wx.Point。
interpolating:设置一个较慢而精准的算法被使用。该值为True时,该算法被使用!
offsetAfterRotation:也是一个wx.Point,一个坐标点,表明旋转后的图像应该移位多少。
注意:任何没有被覆盖的空白像素会被设置成为黑色!!!

例子片段代码以及效果图如下:
rota = wx.Point(image.GetWidth(),image.GetHeight())
image3 = image.Rotate(3.14152/4,rota,interpolating = True)
wx.StaticBitmap(panel,-1,wx.BitmapFromImage(image3),pos = (300,0))
(旋转45度后的效果图):

(旋转90度后的效果图,图片像素都有被覆盖到,所以没有黑色块!)



附加:弧度和角度之间的换算:
一个平角是 π 弧度,即:180度=π弧度
由此可知:
     1度=π/180 弧度 ( ≈0.017453弧度 )
因此,得到 把度化成弧度的公式:
     弧度=度×π/180
例如:
      90°=90×π/180 =π/2 弧度
      60°=60×π/180 =π/3 弧度
      45°=45×π/180 =π/4 弧度
      30°=30×π/180 =π/6 弧度
      120°=120×π/180 =2π/3 弧度

阅读(3396) | 评论(0) | 转发(0) |
0

上一篇:没有了

下一篇:没有了

给主人留下些什么吧!~~