C#使用Matrix类对Dicom图像的旋转、平移、翻转

这篇具有很好参考价值的文章主要介绍了C#使用Matrix类对Dicom图像的旋转、平移、翻转。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

使用Matrix对图像的旋转、平移、翻转,代码如下:

Matrix m_Matrix = new Matrix();
PointF[] imageDisplayPTs;//图像的坐标点对象数组
PointF changeCenterPoint = PointF.Empty;//图像中心点
int nAngle=90;//角度

GraphicsPath gp = new GraphicsPath();
gp.AddPolygon(
    new PointF[] 
                    { new PointF(0, 0), 
                        new PointF(dcm.m_DataBmp.Width, 0), 
                        new PointF(0, dcm.m_DataBmp.Height),
                        new PointF(dcm.m_DataBmp.Width, dcm.m_DataBmp.Height)});
gp.Transform(m_Matrix);
imageDisplayPTs = gp.PathPoints;

//获取图像中心点
changeCenterPoint = PointF.Empty;
changeCenterPoint.X = (imageDisplayPTs[0].X + imageDisplayPTs[3].X) / 2;
changeCenterPoint.Y = (imageDisplayPTs[0].Y + imageDisplayPTs[3].Y) / 2;

//旋转
m_Matrix.RotateAt(nAngle, changeCenterPoint, MatrixOrder.Append);

//平移
m_Matrix.Translate(-changeCenterPoint.X, -changeCenterPoint.Y, MatrixOrder.Append);

//以Y轴翻转
m_Matrix.Multiply(new Matrix(-1, 0, 0, 1, 0, 0), MatrixOrder.Append);
//以X轴翻转
m_Matrix.Multiply(new Matrix(1, 0, 0, -1, 0, 0), MatrixOrder.Append);

Matrix类的操作内容可参考:

C# Drawing.Drawing2D.Matrix类,二维矩阵几何变换的3x3仿射矩阵类_wangnaisheng的博客-CSDN博客文章来源地址https://www.toymoban.com/news/detail-504264.html

到了这里,关于C#使用Matrix类对Dicom图像的旋转、平移、翻转的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Opencv 基础(四):使用OpenCV进行图像旋转和平移

    如今,图像编辑变得越来越流行,因为手机有内置的功能,可以让你 裁剪、旋转 和更多的操作你的图像。 这篇文章中,我们将探索和学习这些图像编辑技术。具体来说,我们将学习如何: 旋转图像 移动图像 图像旋转和平移是图像编辑中最基本的操作之一。两者都属于广义的

    2024年02月05日
    浏览(49)
  • OpenCV(图像处理)-基于Python-图像的基本变换-平移-翻转-仿射变换-透视变换

    为了方便开发人员的操作,OpenCV还提供了一些图像变换的API,本篇文章讲简单介绍各种API的使用,并附上一些样例。 图像缩放函数,用于把图像按指定的尺寸放大或缩小。 dst = cv2.resize(src, dsize, fx, fy, interpolation) dst = 生成的目的图像 src:需要变换的原图像 disize:(x, y)需要

    2024年02月08日
    浏览(68)
  • Matlab图像的平移,旋转,缩放,裁剪

    %%------------------------Matlab图像的平移,旋转,缩放,裁剪------------------------------- %-------------------头文件----------------------------- clc ; %清屏幕 clear ; %删除所有的变量 close all ; %将所有打开的图片关掉 %--------------------图像平移 imtranslate-------------------------- A = imread(\\\'1.jpg\\\') ; subplot(

    2024年02月04日
    浏览(45)
  • 【OpenCV】图像变换(缩放、平移、旋转、仿射)

    图像变换是指通过对图像进行缩放、平移、旋转、仿射、透视等变换来改变图像的形状和大小。在本篇博客中,我们将详细介绍OpenCV中的图像变换函数,并提供示例代码以帮助读者更好地理解这些函数的使用方法。 缩放变换是指通过改变图像的大小来改变图像的形状。在Op

    2024年02月07日
    浏览(61)
  • Open CV 图像处理基础:(六)在Java中使用 Open CV进行图片翻转和图片旋转

    在Java中使用OpenCV进行图片翻转和旋转是一种基本的图像处理技术,广泛应用于计算机视觉、图像编辑和人工智能领域。OpenCV(Open Source Computer Vision Library)是一个开源的计算机视觉和机器学习软件库,它提供了许多常见的图像处理和分析功能,旨在为实时的图像处理提供高效

    2024年02月01日
    浏览(56)
  • MATLAB图像处理之几何变换——平移与旋转

    可以发现,原图在原坐标基础上向X、Y方向分别平移了50和100个单位。但相应平移的部分也被遮挡了,显然这不符合一些场景的应用需求。 为此,MATLAB还提供了参数设置。在imtranslate函数中设置’OutputView’参数为’full’,即可防止遮挡平移的图像,如下图所示。 MATLAB在进行图

    2024年02月16日
    浏览(46)
  • Halcon用矩阵实现图像变换(平移,旋转,缩放,镜像等)

    目录 图像变换介绍  用Halcon自带的算子实现图像变换 使用矩阵来实现相关算子的功能 一、平移 二、旋转 三、缩放 四、镜像 完整代码         在halcon中经常会用到图像变换的操作,然后这次作业是用矩阵来实现相关算子的功能,学到了挺多的所以就记录下来方便复习。

    2024年04月17日
    浏览(41)
  • opencv006图像处理之仿射变换(旋转,缩放,平移)

    空间变换中的仿射变换对应着五种变换,平移,缩放,旋转,翻转,错切。而这五种变化由原图像转变到变换图像的过程,可以用仿射变换矩阵进行描述。而这个变换过程可以用一个2*3的矩阵与原图进行相乘得到。关键就是这个矩阵M:  平移,旋转   透视 M: 变换矩阵 desi

    2024年01月21日
    浏览(52)
  • OpenCV-18图像的翻转和旋转

    一、图像的翻转 使用API---cv.flip(src, flipCode) flipCode = 0表示上下翻转 flipCode 0表示左右翻转 flipCode 0上下 + 左右翻转 或者使用np的翻转src[: : -1,: : -1]实现上下翻转。 示例代码如下: 输出结果如下: 二、图像的旋转 使用API ---cv2.rotate(img, rotateCode) ROTATE_90_CLOCKWISE    90度顺

    2024年02月02日
    浏览(51)
  • opencv 图像的缩放(放大,缩小),翻转,旋转

    opencv 图像的缩放(放大,缩小),翻转,旋转 opencv 最常用的图像缩放方法是使用 cv2::resize() 函数,它需要指定输出图像的大小,和插值算法; opencv 最常用的图像翻转方法是使用 cv::flip() 函数,它需要指定图像翻转方式; opencv 最常用的图像旋转方法是使用 cv::warpAffine() 函数,

    2024年02月07日
    浏览(62)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包