一、引言

图像的几何变换在图像处理中被经常使用,其中图像错切变换也是常用的图像变换。图像错切错切变换包括水平方向错切变换和竖直方向错切变换,本文给出了灰度图像和彩色图像的水平方向错切变换的数学原理及matlab实现。
错切变换示意图如下图所示:

错切变换数学原理很简单,就是简单的矩阵乘法。本文给出了图像水平方向错切变换的Matlab详细实现过程(纯手工)。

二、数学原理及公式

假设变换之前的坐标为(x,y),变换之后的坐标为(x*, y*),则沿水平方向错切变换变换公式的矩阵形式为:

其中系数b是错切比例(其实就是斜率)。
展开之后就是:

由此可以看出水平方向的错切变换就是针对列坐标x进行变换,而行坐标y不变。

三、Matlab手工实现图像水平方向错切变换

1.单通道图像水平方向变换

#函数文件名为:SingleChannelShearX.m
#im为单通道图像像素矩阵
#delta为错切比例,delta>0表示向右错切,否则向左侧错切
#返回错切变换结果图像
function im = SingleChannelShearX( image, delta )
[ h, w ] = size( image );
w1 = floor( w + abs( delta * h ) )
im = uint8( zeros( h, w1 ) );%创建空的旋转图像矩阵,此处uint8是必须的
for i = 1 : hfor j = 1 : wif delta > 0im( h - i + 1, j + floor( delta * i ) ) = image( h - i + 1, j );elseim( i, j + floor( -delta * i ) ) = image( i, j );endend
end
end

2.灰度图像或彩色图像水平方向错切变换
灰度图像直接调用前面的单通道图像变换函数即可。
彩色图像针对R、G、B分量分别调用单通道图变换函数即可。

#函数文件名为:ImageShearX.m
function im = ImageShearX( image, delta )
%把图像沿水平方向错切
imSize = size( image );
dim = numel( imSize ); %图像的维数
if( dim == 2 )%单通道图像,即灰度图像im = SingleChannelShearX( image, delta );
else%彩色图像,即三通道图像R = image( :, :, 1 );G = image( :, :, 2 );B = image( :, :, 3 );imR = SingleChannelShearX( R, delta );imG = SingleChannelShearX( G, delta );imB = SingleChannelShearX( B, delta );im = cat(3 ,imR, imG, imB );%将三个颜色分量合成彩色图像
end
end

3.测试函数ImageShearX的代码

clear all
clc
image = imread( '3.jpg' );
figure; imshow( image );delta = 0.8;
im = ImageShearX( image, delta );
figure; imshow( im );delta = -0.6;
im = ImageShearX( image, delta );
figure; imshow( im );

运行结果:


Matlab图像水平方向错切变换的数学原理及实现相关推荐

  1. Python图像水平方向错切变换数学原理及实现

    一.引言 图像的几何变换在图像处理中被经常使用,其中图像错切变换也是常用的图像变换.图像错切错切变换包括水平方向错切变换和竖直方向错切变换,其数学原理很简单,就是简单的矩阵乘法. 本文给出了图像水平方 ...

  2. matlab波纹噪声图像的平滑,matlab图像水波纹

    %matlab图像水波纹 clear all;close all;clc; img=imread('lena.jpg'); img = im2double(img); [h, w, c]=size(i ...

  3. [MATLAB] 图像的插值算法1:MATLAB中的插值函数及其原理

    MATLAB图像插值算法文章集: 插值函数及其原理 https://blog.csdn.net/Effend/article/details/82870144 最近邻插值 https://blog.c ...

  4. matlab 倾斜矫正,matlab图像倾斜校正

    4 图像颜色畸变校正介绍图像颜色畸变现象可以是由摄像器材导致,也可以是由于真实环境本身就偏 色导致,还有的是由于图像放置过久氧化.老化导致.无论其产生的原因如何, 其校正方法都是类似的.如果用 Mat ...

  5. matlab soble滤波,MATLAB 图像滤波去噪分析及其应用

    MATLAB 图像滤波去噪分析及其应用 第1章 图像颜色空间相互转换与MATLAB实现 1.1 图像颜色空间原理 1.1.1 RGB颜色空间 1.1.2 YCbCr颜色空间 1.1.3 YUV颜色空间 ...

  6. MATLAB图像融合分割系统

    摘 要 图像分割是一种重要的图像分析技术.对图像分割的研究一直是图像技术研究中的热点和焦点.图像分割是一个很关键的图像分析技术,是由图像处理进到图像分析的关键步骤.它的目的就是把图像中感兴趣的那部分分 ...

  7. 3d图像重构matlab,matlab图像的三维重建

    matlab图像的三维重建,通过cat函数创造多维矩阵,smooth拟合处理,iso提取等值面,最终获得三维重建图像. 三维重建的英文术语名称是3D Reconstruction. 三维重建是指对三维 ...

  8. Matlab彩色图像卷积的数学原理及纯手工实现

    一.引言 在图像处理中,不论是提取图像边缘特征,还是尺度空间变换,亦或者目前大火的深度学习,图像卷积都是非常重要的基础工作.卷积从整体上说是卷积,从局部上说其实就是内积.卷积不论在数学上还是信号处理中 ...

  9. matlab平面图形的几何变换,matlab图像的几何变换

    2. 了解平移.伸缩.对称.旋转等变换. 3. 学习掌握 MATLAB 软件有 实验报告 课程名称:数学实验 实验名称:平面图形的几何变换 指导教师: 实验目的.要求: 1. ...... Matla ...

最新文章

  1. LeetCode实战:环形链表 II
  2. 自然辩证法的当代价值
  3. 20169210《Linux内核原理与分析》第十一周作业
  4. Oracle中PLSQL中一个例外的写法
  5. readkeyboard方法_Linux笔记(12)| 几种并发式IO的实现方法
  6. 关于application/x-www-form-urlencoded等字符编码的解释说明
  7. 加深认识与理解ADO.NET
  8. 拯救普通人周报焦虑,一个自动化报表工具就能实现
  9. python中数据读写_【循序渐进学Python——文件中数据的读写以及操作】
  10. [CATARC_2017] 第三周 残四周
  11. 【故障诊断分析】基于matlab概率神经网络柴油机故障诊断【含Matlab源码 1754期】
  12. java子窗口获取父窗口句柄_java获得窗口句柄
  13. 周华健机器人演唱会_周华健伦敦花旦演唱会:歌声悠悠流过梦一样人生
  14. Linux初识及常用命令
  15. 内核block层IO调度器—bfq算法深入探索2
  16. Cadence PSpice中更改Cursor控制的曲线及打印图形Cursor信息的方法
  17. node.js集成sendgrid邮件发送及其它功能
  18. 「囚徒困境」有哪些现实的例子?
  19. [转]北邮生两月的赶集生活,记我在的赶集网工作的两月
  20. nodemcu刷鸿蒙系统,ESP01S刷入NodeMCU固件

热门文章

  1. Microsoft Visual C++ 2017 Redistributable
  2. 中序线索化二叉树c语言实现
  3. js截取字符串的方法
  4. 企鹅安卓客户端联系人列表数据解密分析及Java实现
  5. FreeRTOS调度器启动
  6. python 独热码_数据预处理:独热编码(One-Hot Encoding)
  7. 【解救ROS】实战演练ros机器人动态导航与自动避障
  8. Revit2020 SDK安装后无AddIn Manager文件(已解决)
  9. 键盘输入一个二位十进制的月份数,然后显示出相应的英文缩写名;
  10. echarts小贴纸之图表标注字体格式设置