图像平移(translation)运算和镜像(mirror)运算


还是以24位BMP图像为例,图像的平移和镜像运算都较为简单,只需要注意几点:

1、BMP图像像素宽度必须被4整除,因此如果平移后的像素宽度也必须对齐

2、BMP图像是倒着存放的,在平移的时候要得想明白坐标系朝向


顺便说句,之前几篇blog里面的代码我都要求输入图像input.bmp的像素宽度必须能被4整除,然后我觉得这么偷懒也不是办法 = =。所以还是加了一些判定来解决这个问题。所以接下来的代码中都不要求输入图像的像素宽度是对齐的了。

另外在这个网站在线转换出来的bmp图片都能用下面的代码进行运算: http://pic.55.la

而用PS转换的bmp图片有时候会多出两个像素点导致我的程序无法识别 = =。目前还不知道是为什么

代码如下:

#include <cstdio>
#include <iostream>
#include <vector>
#include <algorithm>
#include <cmath>
#include <cstdlib>
using namespace std;

#define TRANSLATION_X 200
#define TRANSLATION_Y 200
typedef unsigned char BYTE;
typedef unsigned short WORD;
typedef unsigned int DWORD;

//位图文件头定义;
typedef struct  tagBITMAPFILEHEADER{
//	WORD bfType;//单独读取,结构体中就不定义了
	DWORD bfSize;//文件大小
	WORD bfReserved1;//保留字
	WORD bfReserv
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值