变换可以用多种方式来操作图像。下面讨论的转换(用于FlashPix文件)可用于操作空间方向、颜色和色调、对比度和过滤。在某些情况下,例如对比度操作或过滤,可能需要单个值,而对于空间方向、颜色和色调操作,则需要一个值矩阵来完成转换。
用于完成此任务的值存储在下面列出的FILETRANSFORMS结构中。方法将此结构写入文件,以便与图像一起存储L_WriteFileTransforms.方法检查与图像一起存储的转换L_ReadFileTransforms函数,并决定是否以原始状态加载图像,还是以三种转换后的状态之一加载图像。的flags数据成员中设置了ELO_IGNOREVIEWTRANSFORMS和ELO_IGNORECOLORTRANSFORMS标志LOADFILEOPTION结构,然后再加载文件。
注意:通过设置这些标志,您可以告诉系统忽略转换。
为了只加载包含颜色变换效果的图像,你必须设置ELO_IGNOREVIEWTRANSFORMS标志,并清除ELO_IGNORECOLO118金博宝RTRANSFORMS标志。
为了只加载合并了的视图变换效果的图像,你必须设置ELO_IGNORECOLORTRANSFORMS标志并清除ELO_IGNOREVIEW118金博宝TRANSFORMS标志。
最后,要加载包含颜色变换和视图变换的图像,清除ELO_IGNOREVIEWTRANSFORMS和ELO_IGNORECOLORTRANSFORMS标志。118金博宝所有四个加载选项的示例可以在下面的“示例”中看到L_LoadFile.
下面将进一步解释空间方向、颜色和色调操作、对比度操作和过滤。
类型定义结构体_FILETRANSFORMS
{
// AffineMatrix翻译,旋转,剪切,倾斜,缩放…
L_FLOATA11, a12, a13, a14, a21, a22, a23, a24, a31, a32, a33, a34, a41, a42, a43, a44;
/*矩阵值*/
/ / ColorTwistMatrix
L_FLOATByy, byc1, byc2, bc1y, bc1c1, bc1c2, bc2y, bc2c1, bc2c2;/*矩阵值*/
//对比度调整
L_FLOATfContrastAdjustment;/*调整因子*/
L_FLOATfFilteringValue;/*锐度调整*/
} FILETRANSFORMS, * pFILETRANSFORMS;
FILETRANSFORM结构用于L_ReadFileTransforms而且L_WriteFileTransforms来读取或写入FlashPix转换。
空间方向-仿射矩阵
FlashPix支持许多方法来转换图像的空间方向。这些包括剪切、平移、旋转和缩放,并使用4x4矩阵进行描述。将显示图像中的图像点映射到原始图像。一个通用的4x4矩阵如下所示:
──对──对──光盘
│x’│a11 a12 a13 a14
│y'│=│a21 a22 a23 a24│X│
│1│0 0 10 10││1
│1│0 0 0 1│
├──汉英双语例句
其中x'和y'是变换后的新坐标x和y是旧坐标。放在变量a11到a24中的值决定了您要执行的转换以及更改的程度。新值的计算公式如下:
X ' = a11 * X + a12 * y + a13 * 1 + a14 * 1
Y ' = a21 * x + a2 2* Y + a23 * 1 + a24 * 1
首先是单位矩阵,如下所示。这不会对图像数据进行操作,因此结果是图像本身。
──对──对──光盘
│x’││1 0 0 0
│y’│0 10 0│X y│
│1│0 0 10 10││1
│1│0 0 0 1│
├──汉英双语例句
要转换一个点,请使用以下矩阵:
──对──对──光盘
│x′│10 0±X0
│y’│0 10 0±Y0│X y
│1│0 0 10 10││1
│1│0 0 0 1│
├──汉英双语例句
在哪里X0
而且Y0
表示每个点的X和Y的变化量。
绕原点逆时针旋转一个点ßr
,使用以下矩阵:
──对──对──光盘
│x’│cos(ßr) -sin(ßr) 0 0││x
│y’│sin(ßr) cos(ßr) 0 0│X│y
│1│0 0 10 10││1
│1│0 0 0 1│
├──汉英双语例句
的角度水平地剪切图像ßhh
围绕原点逆时针方向,使用以下矩阵:
──对──对──光盘
│x'│1 -tan(ßhh) 0 0││x
│y’│0 10 0│X y│
│1│0 0 10 10││1
│1│0 0 0 1│
├──汉英双语例句
的角度垂直地剪切图像ß高压
围绕原点逆时针方向,使用以下矩阵:
──对──对──光盘
│x’││1 0 0 0
│y'│=│tan(ßhv) 1 0 0│X│y
│1│0 0 10 10││1
│1│0 0 0 1│
├──汉英双语例句
水平地倾斜(或翻转)图像,以…的角度ßsh
围绕原点逆时针方向,使用以下矩阵:
──对──对──光盘
│x'│1 -tan(ßsh) 0 0││x
│y’│0 1/cos(ßsh) 0 0│X│y
│1│0 0 10 10││1
│1│0 0 0 1│
├──汉英双语例句
垂直倾斜(或翻转)图像,以…的角度ßsh
围绕原点逆时针方向,使用以下矩阵:
──对──对──光盘
│x’│1/cos(ßsv) 0 0 0│x
│y'│=│tan(ßsv) 1 0 0│X│y
│1│0 0 10 10││1
│1│0 0 0 1│
├──汉英双语例句
要将关于原点的图像水平缩放为sx,垂直缩放为sy,使用以下矩阵:
──对──对──光盘
│x'│1/sx 0 0 0
│y'│=│0 1/sy 0 0│X│y
│1│0 0 10 10││1
│1│0 0 0 1│
├──汉英双语例句
对于两个方向上的均匀缩放,sx = sy。
多个变换可以组合成一个仿射变换。这通常不是可交换的;应用的顺序很重要。下面的例子展示了将一个线性平移矩阵、一个旋转矩阵和另一个线性平移矩阵相乘的过程。基本上,图像从原始中心点平移到左上角的原点(0,0),围绕原点旋转,然后平移回原始中心。为了本例的目的,以下是正确的:
C =夹角的余弦。
S =角的正弦值。
X^ =图像宽度/ 2。图像宽度可以使用L_FileInfo(见“示例”)。
Y^ =图像高度/ 2。图像高度可以使用L_FileInfo(见“示例”)。
X =被操纵点的X坐标。
Y =被操纵点的Y坐标。
X' =新的X坐标。
Y' =新的Y坐标。
在最右边的4x4矩阵中,X^和Y^前面的负号表示到原点的平移。由于这是过程中的第一步,所以这个矩阵最接近表示被操纵点的4x1矩阵。相反,回到原始中心的平移是最后执行的,由最左边的4x4矩阵执行,X^和Y^是正的。
一旦建立了三个变换矩阵的阶,这三个矩阵的乘法就是可交换的。这里的乘法将从左到右进行,首先乘以最左边和中间的矩阵。
┌──┐┌──┐┌──┐┌──┐┌──┐
│x '││c -s 0 0││c -s 0 0
│y '│x│s c 0 0│x│0 10 -y ^│=│y
│1│0 0 1 0││0 0 1 0
│1│0 0 1││0 0 1││0 0 1
├──汉英双语:├──汉英双语
用上面最左边4x4矩阵的第一行乘以上面中间矩阵的第一列,就得到了下面给出的左边矩阵的左上角项。上面最左边矩阵的第一行乘以上面中间矩阵的第二列,就得到了下面左边矩阵的第一行的第二个条目。这贯穿整个矩阵。结果是下面左边的矩阵,然后乘以右边的矩阵得到最终的4x4矩阵。
───────────────────────────────────────
│c -s 0 x ^││1 0 0 -x ^│1 0 0 0
│s c 0 y ^│x│0 10 -y ^│x│0 1 0 0│=│y
│0 0 1 0││0 0 1 0
│0 0 0 1││0 0 1││0 0 1
├──汉英双语(英文版
乘法过程和前面一样,用左边矩阵的行乘以右边矩阵的列。一旦完成,就会得到如下所示的4x4矩阵。这个矩阵将对原始图像进行平移,旋转和平移。
──碱──碱
│c -s 0 (c *(-x ^)) + (s * y ^) + x ^│x
│s c 0 -(s * x ^) -(c * y ^) + y ^│x│y
│0 0 0 0│1
│0 0 1││1
├──汉英词典(英文版
新的坐标确定如下:
X' = (c \*X) - (s \* y) + (c \*(-X^)) + (s \* y ^) + X^
Y' = (s \* x) + (c \*Y) - (s \* x ^) - (c \*Y\*) + Y^
颜色和色调操作-颜色扭曲矩阵
FlashPix格式使用颜色扭曲矩阵来允许用户修改图像的色调和/或颜色。这也是通过使用矩阵来完成的。矩阵的一般形式如下:
──对──对──光盘
│L'│byy byc1 byc2 0││L
│C1'│=│bc1y bc1c1 bc1c2 0│X│C1
│C2'││bc2y bc2c1 bc2c2 0││C2
│1│0 0 0 1│
├──汉英双语例句
其中
首先是单位矩阵,如下所示。这不会对图像数据进行操作,因此结果是图像本身。
──对──对──光盘
│l│1 0 0 0
│c1 '│0 1 0 0│x│c1
│c2’││0 0 10 10
│1│0 0 0 1│
├──汉英双语例句
使图像变亮:使图像变亮一倍L1的
,设置L1
等于根号下L1的
并使用下面的矩阵:
──对──对──光盘
│l│l1 0 0 0││l
│c1′│=│0 l1 0 0│x│c1
│c2′││0 0 l1 0
│1│0 0 0 1│
├──汉英双语例句
的值L1的
0到1使图像变暗,而> 1使图像变亮。因此,如果您希望图像减亮10%,请设置L1' = 1.1
.
要改变图像的饱和度,使用以下矩阵:
──对──对──光盘
│l│1 0 0 0
│C1′│=│0 Sa 0 0│X│C1
│C2′││0 0 Sa 0││C2
│1│0 0 0 1│
├──汉英双语例句
在哪里Sa
是饱和因子。饱和度因子在0到1之间会降低饱和度,从而创建灰度更高的图像,而大于1的值则会增加饱和度。因此,如果您希望将饱和度增加10%,请设置Sa = 1.1
.
修改红色、绿色或蓝色的颜色平衡:
C =√(C') - 1
在哪里C '
是曝光水平的期望因子。增加颜色20%,请设置C' = 1.2
.
要修改图像的红色平衡,
──对──对──光盘
│l '│1 0 0.299* c 0││l
│C1││= -0.299 * C 1 - 0.299 * 0.299 * C 0 X C1│││
│c2 '│0.701* c 01 +0.402* c 0
│1│0 0 0 1│
├──汉英双语例句
要修改图像的绿色平衡,
──对──对──光盘
│1 -0.114* c -0.299* c 0││l
│C1││= -0.587 * C 1 - 0.473 * 0.299 * C 0 X C1│││
│c2 '│-0.587* c 0.114* c 1-0.288* c 0
│1│0 0 0 1│
├──汉英双语例句
要修改图像的蓝色平衡,
──对──对──光盘
│l│1 -0.114* c 0 0││l
│C1││= 0.866 * C 1 + 0.772 * 0.299 * C 0 X C1│││
│c2 '│-0.114* c -0.114* c 1-0.114* c 0
│1│0 0 0 1│
├──汉英双语例句
对比修改
图像中的对比度可以使用对比度因子(结构中的fContrastAdjustment)进行修改。小于1的因子会降低对比度,使图像变暗,而大于1.0的因子会增加对比度,使图像变亮。要增加20%的对比度,设置f对比度调整= 1.2。
锐度修改
锐度因子(fFilteringValue)锐化或软化图像。正值导致图像锐化,而负值导致图像软化或模糊。
帮助收藏
光栅net|C API|c++类库|HTML5 JavaScript
文档net|C API|c++类库|HTML5 JavaScript
医疗net|C API|c++类库|HTML5 JavaScript
医疗网络查看器net
188宝金博怎么下载
支持的平台上
.NET、Java、Android和iOS/macOS程序集
C API/ c++类库
HTML5 JavaScript库
您的邮件已发送给技术支持!应该有人联系!如果你的事情很紧急,请回来聊天。
聊天时间:
周一至周五,美国东部时间上午8:30至下午6:00
感谢您的反馈!
请再次填写表格,开始新的聊天。
所有代理目前都离线。
聊天时间:
星期一至星期五
美国东部时间上午8:30 -下午6点
如需与我们联系,请填写此表格,我们将通过电子邮件与您联系。