数字图像处理实验(六):图像旋转与缩放

本文介绍了数字图像处理中的空间变换,包括平移、缩放和选择(旋转)变换的原理和实现。实验中,平移变换通过2*3的变换矩阵实现,缩放变换涉及横纵坐标分别放大或缩小,而旋转变换则围绕原点进行。实验环境使用OpenCV3.4.3,Ubuntu16.04,VS Code和C++编程语言。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、实验内容与原理

1、空间变换:

空间变换对应矩阵的仿射变换。一个坐标通过函数变换的新的坐标位置:
在这里插入图片描述
所以在程序中我们可以使用一个2*3的数组结构来存储变换矩阵:
在这里插入图片描述
以最简单的平移变换为例,平移(b1,b2)坐标可以表示为:
在这里插入图片描述
因此,平移变换的变换矩阵及逆矩阵记为:
在这里插入图片描述

2、缩放变换:

将图像横坐标放大(或缩小)sx倍,纵坐标放大(或缩小)sy倍,变换矩阵及逆矩阵为:
在这里插入图片描述

3、选择变换:

图像绕原点逆时针旋转a角,其变换矩阵及逆矩阵(顺时针,特别说明,图像的坐标轴与一般数学意义的坐标轴不同)为:
在这里插入图片描述

二、实验代码

实验环境:
(1)OpenCV3.4.3
(2)Ubuntu16.04
(3)VS Code
(4)C++

// 图像的旋转 与 缩放
#include <stdio.h>  
#include <iostream>
#include <opencv2/opencv.hpp>
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <string>

class Extra1{
public:
    Extra1(std::vector<std::string> path){
        for(int i = 0; i < path.size(); i++){
            // 读取彩色图片、灰度图片
            original_color_image.push_back(cv::imread(path[i]));
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值