精通Visual C++图像编程之位图变换(学习笔记)

图像变换,主要是指数字图像的几何变换(或称为空间变换),即图像中点与点之间的空间映射关系。

一、一般变换表达式;

二、仿射变换;

1、平移

2、旋转

3、缩放

4、剪切


透视变换;

多项式变换;

图像重采样

插值;

抗混叠技术;


5、2    裁剪与合并

剪切

裁剪

合并

5、3缩放

改变DIB图像大小

改变像框大小

5、4旋转

图像旋转90o的实现步骤:

(1)创建一个新的DIB其颜色信息与源位图相同,注意新位图的宽、高分别为源位图的高和宽。

(2)根据位图的存储为大小,分别对1位、4位、8位和24位的位图进行旋转,即对DIB的每一像素进行旋转变换。应该注意:

      1)DIB的每一个扫描行都必须填补到4字节(32位)的DWORD边界。通过检查DIB的BITMAPINFOHEADER结构的biWidth域,以确定每行像素的总位数是否是32的倍数,如果不是,则必须考虑填补的位数。

      2)DIB位图存储图像的顺序是从左到右,从上到下;因此,存储的位图实际上是显示的位图图像的倒置。在编写位图变换的算法时,应该考虑到这一特点所造成的影响。

      3)对于像素位数为1的DIB位图,其每个像素只占一位,每个字节存储八个像素。字节的最高位对象于最左边的像素。

      4)在没有压缩的像素位数为8的DIB位图中,每个字节存储一个像素。

      5)在像素位数为24的DIB位图中,每个像素占3个字节,从左到右的每一字节分别存储蓝、绿、红的颜色值。


5、5 镜像

水平镜像和垂直镜像



本章小结:

》图像变换涉及的基本概念,包括空间变换(映射)、图像重建、重采样、抗混叠处理等;

》大部分的空间变换都可以用一个3 X 3的变换矩阵来表示;

》仿射变换是最简单的空间变换,常见的包括平移、旋转、缩放和剪切等都可用仿射变换来实现;

》实现了DIB图像变换的主要操作函数,包括裁剪与合并、缩放、旋转、镜像;

》以DIB图像变换函数为基础,在CDib类中增加图像变换操作功能。


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值