如何用实现图片的放大缩小与去阴影能用C语言写出实现的算法吗

如何用实现图片的放大缩小与去阴影能用C语言写出实现的算法吗,第1张

bmp,

缩小没有问题, 根据缩小比例计算然后采样组成新文件就行了

放大的话会失真,

其实就是根据比例重新计算坐标对应位置并插值

这两个难度不大,但用C写代码不少

建议你可以自己动手,任何不会的环节都可以追问因为一般回答懒得给你敲几百行代码

去阴影不知道你指的是什么

问题一:别人发在电脑,用键盘哪个键放大看 开始菜单-所有程序-附件-轻松访问-放大镜,这是win10的路径

Windows放大镜快捷键大全 Windows 键 + 符号键“+” 调用Windows7放大镜,并且放大局部内容 Windows 键 + 符号键“-” 调用Windows7放大镜,并且缩小局部内容 Windows 键 + Esc 退出放大镜 Ctrl + Alt + F 切换到全屏模式(Full screen mode) Ctrl + Alt + L 切换到镜头模式(Len mode) Ctrl + Alt + D 切换到停靠模式(Dock mode) Ctrl + Alt + I 反色 Ctrl + Alt + 箭头键 按照箭头键方向平移(就是键盘控制移动方向)

问题二:Photoshop用键盘按建按那个键是放大镜<就是放大>、按那个是缩小 Ctrl + + 放大C梗rl + - 缩小按住Z是放大镜的快捷键,点击即可放大,按住Alt键点击即可缩小

问题三:电脑放大快捷键 调节色调/饱和度:Ctrl+U;

自由变形:Ctrl+T;

增大笔头大小:“中括号”;

减小笔头大小:“中括号”;

选择最大笔头:Shift+“中括号”;

选择最小笔头:Shift+“中括号”;

重复使用滤镜:Ctrl+F;

移至上一图层:Ctrl+“中括号”;

排至下一图层:Ctrl+“中括号”;

移至最前图层:Shift+Ctrl+“中括号”;

移至最底图层:Shift+Ctrl+“中括号”;

激活上一图层:Alt+“中括号”;

激活下一图层:Alt+“中括号”;

合并可见图层:Shift+Ctrl+E;

放大视窗:Ctrl+“+”;

缩小视窗:Ctrl+“-”;

放大局部:Ctrl+空格键+鼠标单击;

缩小局部:Alt+空格键+鼠标单击;

翻屏查看:PageUp/PageDown;

显示或隐藏标尺:Ctrl+R;

显示或隐藏虚线:Ctrl+H;

显示或隐藏网格:Ctrl+”。

打开文件:Ctrl+O;

关闭文件:Ctrl+W;

文件存盘:Ctrl+S;

打印文件:Ctrl+P;

恢复到上一步:Ctrl+Z;

你说的应该是:

放大视窗:Ctrl+“+”;

缩小视窗:Ctrl+“-”;

放大局部:Ctrl+空格键+鼠标单击;

缩小局部:Alt+空格键+鼠标单击;

问题四:怎么用键盘缩小 WIN键+D键 最小化窗口在任务栏上显示为按钮和还原在任务栏上显示为按钮的最小化的窗口

WIN键+M键 最小化的窗口在任务栏上显示为按钮

WIN键+M键+SHIFT 可将所有窗口和对话框还原为原来的大小

问题五:PS如何放大图像快捷键 CS2中的所有快捷键

工具箱(多种工具共用一个快捷键的可同时按Shift加此快捷键选取)

矩形、椭圆选框工具 M

裁剪工具 C

移动工具 V

套索、多边形套索、磁性套索 L

魔棒工具 W

喷q工具 G

画笔工具 B

像皮图章、图案图章 S

历史记录画笔工具 Y

像皮擦工具 E

铅笔、直线工具 N

模糊、锐化、涂抹工具 R

减淡、加深、海棉工具 O

钢笔、自由钢笔、磁性钢笔 P

添加锚点工具 +

删除锚点工具 -

直接选取工具 A

文字、文字蒙板、直排文字、直排文字蒙板 T

度量工具 U

直线渐变、径向渐变、对称渐变、角度渐变、菱形渐变 J

油漆桶工具 K

吸管、颜色取样器 I

抓手工具 H

缩放工具 Z

默认前景色和背景色 D

切换前景色和背景色 X

切换标准模式和快速蒙板模式 Q

标准屏幕模式、带有菜单栏的全屏模式、全屏模式 F

临时使用移动工具 Ctrl

临时使用吸色工具 Alt

临时使用抓手工具 空格

打开工具选项面板 Enter

快速输入工具选项(当前工具选项面板中至少有一个可调节数字) 0至9

循环选择画笔 [或]

选择第一个画笔 Shift+[

选择最后一个画笔 Shift+]

建立新渐变(在”渐变编辑器”中) Ctrl+N

文件 *** 作

新建图形文件 Ctrl+N

用默认设置创建新文件 Ctrl+Alt+N

打开已有的图像 Ctrl+O

打开为 Ctrl+Alt+O

关闭当前图像 Ctrl+W

保存当前图像 Ctrl+S

另存为 Ctrl+Shift+S

存储副本 Ctrl+Alt+S

页面设置 Ctrl+Shift+P

打印 Ctrl+P

打开“预置”对话框 Ctrl+K

显示最后一次显示的“预置”对话框 Alt+Ctrl+K

设置“常规”选项(在预置对话框中) Ctrl+1

设置“存储文件”(在预置对话框中) Ctrl+2

设置“显示和光标”(在预置对话框中) Ctrl+3

设置“透明区域与色域”(在预置对话框中) Ctrl+4

设置“单位与标尺”(在预置对话框中) Ctrl+5

设置“参考线与网格”(在预置对话框中) Ctrl+6

设置“增效工具与暂存盘”(在预置对话框中) Ctrl+7

设置“内存与图像高速缓存”(在预置对话框中) Ctrl+8

编辑 *** 作

还原/重做前一步 *** 作 Ctrl+Z

还原两步以上 *** 作 Ctrl+Alt+Z

重做两步以上 *** 作 Ctrl+Shift+Z

剪切选取的图像或路径 Ctrl+X或F2

拷贝选取的图像或路径 Ctrl+C

合并拷贝 Ctrl+Shift+C

将剪贴板的内容粘到当前图形中 Ctrl+V或F4

将剪贴板的内容粘到选框中 Ctrl+Shift+V

自由变换 Ctrl+T

应用自由变换(在自由变换模式下) Enter

从中心或对称点开始变换 (在自由变换模式下) Alt

限制(在自>>

问题六:win8怎么用键盘放大,鼠标中间的轮坏了 这个很简单,就用数字后面的+、-键就可以~~

问题七:按哪几个什么键能放大比例? 按CTRL+滚轮

PS里面按ALT+滚轮

问题八:ps新手,怎么设置一键缩放图像大小 ,就是按键盘上一个按键就可以缩放,不需要鼠标或者组合动作什么的 不可以单独一个键做为放大命令,那样PS那么多快捷键还能排得过来么,单单工具是单字母键,命令都是组合键的。

放大镜工具快捷用法:

快捷键Z,选择放大镜的状态下――鼠标单击屏幕放大,按住ALT键时鼠标单击屏幕缩小(可以框选精准放大区域)。

无论选择任何工具时,按下CTRL+空格为临时切换至放大镜工具,松开时变成原来选择工具。

键盘快捷键,CRTL+加号――放大,CTRL+减号――缩小,CTRL+0――屏幕大小,CTRL+ALT+0――实际像素。

问题九:ps中在使用抠图工具时如何用快捷键移动放大的原始? 在任何时候按住空格键,就是调用抓手工具的快捷键。

通过按住空格键调用抓手工具就可以随心所欲的移动。

至于放大我是用的快捷键 ctrl+=(-)键放大缩小。

希望能帮助你。

问题十:PS按什么键可以将图放大 将图放大有好几种方式比较 按住ALT滑动鼠标的轮 比如按住CTAR+ +号键。。比如CTRL+空格键然后再点你要放大的点。

从这一部分开始,进入了图形编程的比较烦琐的部分,要真正对图形编程有所了解,这一部分的内容是必须要掌握的。

在计算机绘图过程中,经常需要进行绘图变换,主要包括二维图形变换和三维图形变换。这一部分讨论二维图形变换,其内容有用户坐标到屏幕坐标的变换、图形的比例变换、对称变换、错切变换、旋转变换、平移变换和复合变换等。后面讲到了二维剪裁,即线段裁剪与多边形裁剪。

第一节 用户坐标到屏幕坐标变换

假设纸上有一个图形,要用计算机把它在屏幕上画出来。那么首先遇到的问题是,纸上的图形采用的坐标是实数域域中的直角坐标系或是极坐标系,统称为用户坐标系。而屏幕上采用的坐标系是整数域中直角坐标系,这类坐标系统称为设备坐标系。因此用户坐标系中图形需要经过变换才能绘制在屏幕上,显然这个变换的内容包括: 1)将用户坐标系中任意范围区域转换到屏幕某个范围区域,从而用户坐标系此范围区域内的图形也转换到屏幕上该范围区域内。 2)用户坐标系此区域内图形上的坐标值转换到屏幕上该范围区域内后不一定是整数,取整后才成为该范围区域内的屏幕坐标值。 3)用户坐标右手系到屏幕坐标左手系的坐标轴方向变换。 4)当屏幕坐标系水平方向与垂直方向刻度不等(即像素间距不等)时,为保持图形不走样,还要进行比例变换。下面介绍这些内容的具体计算问题。

1窗口到视口的变换

更确切地说,是实际图形到屏幕图形的转换。有时也称为数据规格化。

在用户坐标系中,指定一矩形域以确定要显示(或绘制)的图形部分,这个矩形区域称为窗口。在屏幕上可任选一矩形域以显示(或绘制)窗口内的图形,该域称为视口。如图2-1所示。

一般视窗口的四条边界分别为:

左边界 x=x1、右边界 x=x2下边界 y=y1,上边界y=y2。

视口的四条边界分别为:

左边界sx=sx1,右边界sx=sx2,上边界sy=sy1,下边界sy=sy2。

经变换后应有,窗口的上边界线段(或下边界线段)长x2-x1变换成视口上边界线段(或下边界线段)长sx2-sx1。设其比例变换因子为k1,则可得

k1(x2-x1)=sx2-sx1

k1=(sx2-sx1)/(x2-x1)

对窗口内任一x坐标(x1<=x<=x2)变换后为视口内水平方向sx坐标(sx1<=sx<=sx2)。由上述有:

k1(x-x1)=sx-sx1

sx=sx1+k1(x-x1)

=sx1+(x-x1)(sx2-sx1)/(x2-x1)

同样,经变换后窗口的左边界线段(或右边界线段)长y2-y1变换成视口左边界线段(或右边界线段)长sy2-sy1。设其比例变换因子为k2,则可得

k2(y2-y1)=sy2-sy1

k2=(sy2-sy1)/(y2-y1)

对窗口内任一y坐标(y1<=y<=y2)变换后为视口内垂直sy坐标(sy1<=sy<=sy2),应有

k2(y-y1)=sy-sy1

sy=sy1+k2(y-y1)

=sy1+(y-y1)(sy2-sy1)/(y2-y1)

于是对窗口内图形上任一点坐标(x,y)变换到屏幕上视口内成为(sx,sy),则

sx=sx1+(x-x1)(sx2-sx1)/(x2-x1)

sy=sy1+(y-y1)(sy2-sy1)/(y2-y1)

写成简式

sx=k1x+a

sy=k2y+b

这里

a=sx1-k1x1

b-sy1-k2y1

k1=(sx2-sx1)/(x2-x1)

k2=(sy2-sy1)/(y2-y1)

2 实型值到整型值的变换

上面对窗口内图形上任一点坐标(x,y)变换到屏幕上视口内成为(sx,sy),

sx=k1x+a

sy=k2y+b k1,k2,a,b同上

这样计算出来的sx,sy一般是实型值,而屏幕上视口内屏幕坐标是整型值,因此要将sx,sy实型值转换成屏幕坐标系的整型值。这可以通过四舍五入的方法将实型值的绝对值圆整化。由于C语言中已经替我们想到了这点,它提供的函数可以自动取整,因此用户在调用标准函数在屏幕上绘图时一般不需要考虑这个问题。当然也可以用赋值的类型转换规则来实现实型值到整型值的变换。

3 y坐标值方向变换

一般屏幕坐标系是直角左手系,y轴方向向下为正,原点在屏幕的左上角,如图2-2所示。

窗口内图形上任一点(x,y)变换到视口内成为(sx,xy),而(x,y)是相对用户坐标系(直角右手系)的。(sx,sy)是相对屏幕坐标系(直角左手系)的,因此y轴方向相反。为使窗口内图形变换到视口上图形其形状一致,需将视口上图形y轴方向变换成窗口内图形y轴方向。这只要将求得的视口内各点的sy整型坐标均用sy2去减,即sy2-sy(整型)代替sy(整型)即可,经这样的坐标轴方向变换后得到的视口内图形与窗口内图形一致。

4长宽比例变换

屏幕坐标系x方向与y方向上的刻度可能不一样,这取决于水平方向像素间距与垂直方向偈素间距大小是否一致。如果两个方向的刻度不相等,那么用户坐标系下一个正方形将显示(或绘制)成为一个长方形有,一个圆将成为一个椭圆。

为保持原图形的长宽比。使图形显示(或绘制)后不走样,需求出屏幕上两侍标轴刻度的比值(即纵横比)。可以用函数getaspectratio()(见前文所述)返回x方向和y方向的比例数,从而求得这个比值。再瘵原图形y方向坐标乘以该比值,这样显示(或绘制)出来的图形应不走样。若不考虑图形的走样,就不必作这个变换。

第二节 二维几何变换

图形的几何变换一般是指对图形的几何信息经过变换后产生新的图形,图形几何变换既可以看作是坐标系不动而图形变动,变动后的图形在坐标系中的坐标值发生变化;出可以看作图形不动而坐标系变动,变动后的图形在新坐标系下具有新的坐标值。这两种情况本质上都是一样的,都是图形由新的坐标值表示,因此是新产生的图形。图形几何变换包括比例变换、对称变换、错切变换、旋转变换、平移变换及其复合变换。图形上所有的点在几何变换前后的坐标关系一般用解析几何方法可以求得,但这些几何关系用矩阵方法表示,运算更为方便。

一、基本变换

图形基本几何变换是指比例变换、对称变换、错切变换、旋转变换和平移变换等。除平移变换外,这里其它四种几何变换都可以用组成图形的点向量(或称1×2阶矩阵)和2×2阶变换矩阵相乘表示,而平移变换需引入新方法来实现。

1、比例变换

设图形上一点P(x,y),经比例变换后成为新的菜上一点P'(x',y'),即有

x'=ax

y'=dy

式中a,d为比例因子

将此比例变换式写成矩阵式得

a 0

[x' y']=[x y] = [x y] T

0 d

a 0

这里 T= 叫做比例变换矩阵。若a=d,则x,y坐标按同一比例变换。

0 d

当a=d>1时,图形放大;当0<a=d<1时,图形缩小。

若a≠d,则x,y坐标按各自不同比例变换。

3 0

例 1: 设有比例变换矩阵 T= , 三角形abc经过比例变换成为三角形a'b'c'。

0 1

如图2-3所示。

3 0

a [1 2] = [3 2] a'

0 1

3 0

b [2 2] = [6 2] b'

0 1

3 0

c [2 3] = [6 3] c'

0 1

2 对称变换

图形上一点P(x,y)经关于原点对称变换后成为新图形上一点P'(x',y'),则

x' = -x

y' = -y

写成矩阵形式成为

-1 0

[x' y'] = [x y] = [x y] T

0 -1

-1 0

这里 T = 为关于原点对称变换矩阵。

0 -1

若关于x轴对称,则对称变换的矩阵表示为

1 0

[x' y'] = [x y] = [x y] T

0 -1

1 0

于是关于x轴对称变换矩阵 T =

0 -1

若关于y轴对称,则对称变换的矩阵表示为

-1 0

[x' y'] = [x y] = [x y] T

0 1

-1 0

于是关于y轴对称变换矩阵 T =

0 1

若关于直线y = -x对称,则对称变换矩阵表示为

0 -1

[x' y'] = [x y] = [x y] T

-1 0

0 1

于是关于直线 y = x对称变换矩阵 T =

1 0

各种对称变换的图形均可由实例程序绘出,参见实例程序图形。

3 错切变换

对图形的任一点P(x,y),作线性变换如下

x' = x + by

y' = y + dx

式中b,d为不全为零的常 数,点P'(x',y')为新图形上相应的点,这个变换称为图形的错切变换。

错切变换的矩阵表示为

1 d

[x' y'] = [x y] = [x y] T

b 1

1 d

T = 叫做错切变换矩阵(b,d不全为零)。

b 1

① 当d=0时,x'=x+by,y'=y,这时图形的y坐标不变,x坐标值随(x,y)及系数b作线性变化。若b>0时,图形沿x轴作错切位移;若b<0,图形沿x轴负向作错切位移。

② 当b=0时,x'=x,y'=dx+y,此时图形的x坐标不变y坐标随(x,y)及系数d作线性变化。如d>0,图形沿y轴正向作错切位移;如d<0,图形沿y轴负向作错切位移。

③ 当b≠0且d≠0时,x'=x+by,y'=y+dx,图形沿x,y两个方向作错切位移。

1 2

例 2: 设有错切变换 矩阵 T = ,正方形abcd经此错切变换成为四边形a'b'c'd',

0 1

如图2-4所示。

1 2

a [0 0] = [0 0] a'

0 1

1 2

b [1 0] = [1 2] b'

0 1

1 2

c [1 1] = [1 3] c'

0 1

1 2

d [0 1] = [0 1] d'

0 1

4 旋转变换

设图形上一点P(x,y)绕原点逆时针旋转θ角后成为新的图形上一点P'(x',y'),则由解析几何方法可得

x' = xcosθ + ysinθ

y' = -xsinθ + ycosθ

用矩阵表示为

cosθ -sinθ

[x' y'] = [x y] = [x y] T

sinθ cosθ

cosθ -sinθ

这里 T = 为绕原点逆时针变换矩阵。若顺时针旋转时,θ角为负值。

sinθ cosθ

5 平移变换

若图形上一点P(x,y)沿x轴平移 l距离,沿y轴平移m距离后成为新的图形上一点P'(x',y'),则有

x' = x + l

y' = y + m

式中l,m不全为零,这称为平移变换。但此变换无法用组成图形的点向量和2×2阶变换矩阵相乘来实现。

用二维点向量和2×2阶矩阵相乘不能表示图形的平移变换,那么自然会想到用三维点向量和3×3阶矩阵相乘来实现图形的平移变换。因此对图形上二个坐标的点向量需要添加一个坐标,使之成为三维点向量以便与三阶矩阵相乘,进而实现用矩阵表示平移变换。实际上就是对上面的二个坐标变换式添加第三个坐标变换式,即成为

x' = x + l

y' = y + m

k = k

这第三个坐标变换式(即k=k)必须是恒等式,因为不需作变换,本质上是为了进行矩阵运算而引入的。

将此三个变换式(仍然是图形的平移变换,不妨将k = k取成1=1)写成矩阵得

1 0 0

[x' y' l] = [x y l] 0 1 0 = [x y 1] T

l m 1

1 0 0

显然 T = 0 1 0 为图形的平移变换矩阵。

l m 1

这里通过对原图形上二维点向量引进第三个坐标成为三维点向量,从而使原图形的平移变换 能用矩阵表示。同样其它基本变换也可以如此用矩阵表示。因此图形的基本变换都可以在这样的三维点向量下统一、整齐用矩阵表示。这样的三维点向量称为齐次点向量,也叫三维齐次坐标点,简称三维齐次坐标。只有在三维齐次坐标下,二维几何变换才都可以用矩阵表示。下面再进一步讨论一下齐次坐标的优点。

引用齐次坐标后,可将上面各种基本变换矩阵统一在一个三阶矩阵中。即

a b 0

T = c d 0

l m 1

式中左上角二阶矩阵实现比例、对称、错切、旋转等变换,左下角1×2阶矩阵实现平移变换,其中a,b,c,d,l,m只要赋以相应的值,并建立图形上点的齐次坐标(即在图形上点的坐标后引入第三个坐标1),这样就可以用图形上点的三维齐次坐标与此三阶矩阵相乘来表示三维图形的基本几何变换了。而变换后,不用考虑第三个坐标1,前面两个坐标就反映了图形的整个变换情况。

用齐次坐标表示一个图形上的点,可以有多种表示,如(6,8,1)、(12,16,2)、(30,40,5)等均表示图形上同一个点(6,8)。这样,齐次坐标可以表示计算机无法容纳的数。例如当计算机的字长为16位时,它能表示的最大整数为216-1=32767。若点坐标为(80 000,40 000),则计算机无法表示。但用齐次坐标可表示为(20 000,10 000,1/4),经过处理后再用第三个坐标支除前面两个坐标,从而得到原来通常的坐标。

齐次坐标优点很多,在计算机绘图中都采用这种表示来处理图形。下面介绍的图形复合几何变换就是如此。

二、复合变换

图形的复合几何变换是指图形作一次以上的基本几何变换,变换结果是每次基本变换矩阵的乘积。图殂的复合几何变换简称复合变换。

1 复合平移

若对图形首先作平移变换 T1,然后再作平移变换T2,相应的平移变换矩阵分别为

1 0 0

T1 = 0 1 0

l1 m1 1

1 0 0

T2 = 0 1 0

l2 m2 1

则变换结果为复合平移变换T,其复合平移变换矩阵为

T = T1 T2

1 0 0 1 0 0

= 0 1 0 0 1 0

l1 m1 1 l2 m2 1

1 0 0

= 0 1 0

l1+l2 m1|m2 1

看你想用什么工具喽,处理,首先要了解的是储存方式,最简单的要属bmp,也就是位图,win32自带有函数可以调用 *** 作位图,它保存的是每个点的颜色与位置,当然二进制码没有你想的那么简单,使用的好像是调色板模式储存的

最厉害的压缩是jpg,现在很多高清的也用它,里面的代码方式暂时不知道,不过人家提供的函数接口,可以直接调用,最后处理时,最难的地方就在于放大或缩小,这里需要考虑的问题是仿真技术,往深了可能难懂,简单点的就是将放大或缩小后改变的区域用原有的颜色进行渐变

想做出类似画图的软件,还是很麻烦的,画图画线都好说,主要难在添充颜色

用“自由缩放”命令可以调整图像大小。

1、打开软件,导入需要的素材。

2、进入其中一张按ctrl+a全部选中,再按ctrl+c复制,进入到第二张,按ctrl+v粘贴。

3、点击图层,选中拖移进来的。

4、按ctrl+t进入自由变换选区,调整四个角的位置进得变换大小,按着shift+alt的同时拖动鼠标,实行等比例缩放。

5、调整后的大小。

扩展资料

认识ps工作界面

ps工作界面主要包括:菜单栏、工具属性栏、工具栏、浮动控制面板、状态栏、文档窗口等等。

1、最上面的一行的菜单栏,菜单中有:文件、编辑、图像、图层、选择、滤镜等内容。

2、工具属性栏,位于第二行,在菜单栏下面,它的内容随选择的工具而显示不同的内容。

3、工具栏,默认位于界面的左侧,用户可以根据使用习惯,也可以调整到界面的右边。工具栏中包含了photoshop的所有工具。

4、工作区,它是界面的主要部分,也称文档栏,是 *** 作的界面。

5、图像属性栏,位于界面的最下方,它随打开的文档不同而显示的内容也不同。

6、浮动窗口,默认在界面右边,用户可以自己选择要显示的窗口。

我刚刚写的<html>

<head></head>

<script lanuage="javascript">//鼠标移动到是显示DIV

function mousemove(src, oEvent){ oEvent = oEvent || windowevent; //兼容火狐 documentgetElementById("bigImage")src = src; documentgetElementById("bigImageDIv")styleleft = oEventx oEventx : oEventpageX; documentgetElementById("bigImageDIv")styletop = oEventy oEventy : oEventpageY; documentgetElementById("bigImageDIv")styledisplay = "block";}//鼠标离开时,简单点就直接none

function mouseout(){

documentgetElementById("bigImageDIv")styledisplay = "none";

}

</script>

<body>

<div id="bigImageDiv" style="width:200px; height:200px; display:none; border:3px solid #000; z-index:100; position:absolute"><img id="bigImage" style="width:200px; height:200px" styl /></div><img src="C:\Documents and Settings\All Users\Documents\My Pictures\示例\Sunsetjpg" style="width:80px; height:80px" onmousemove="mousemove(thissrc)" onmouseout="mouseout()" /><img src="C:\Documents and Settings\All Users\Documents\My Pictures\示例\Winterjpg" style="width:80px; height:80px" onmousemove="mousemove(thissrc)" onmouseout="mouseout()" />

</body></html>

参考如下:

用vc6新建一个win32控制台程序;

/

功能:实现加载jpg,并进行缩放显示

开发环境: winXP + vc6 + openCV10

头文件路径:

D:\opensource\opencv10\cv\include

D:\opensource\opencv10\cxcore\include

D:\opensource\opencv10\otherlibs\highgui

lib文件目录:

D:\opensource\opencv10\lib

用到的lib文件: cxcorelib cvlib highguilib

/

#include <stdioh>

#include <cvh>

#include <highguih>

#include <mathh>

int main(int argc, char argv[])

{

const char imgName[] = {"源图像", "缩放后图像"};

IplImage src = 0; //源图像指针

IplImage dst = 0; //目标图像指针

float scale = 05f; //缩放倍数为0618倍

CvSize dst_cvsize; //目标图像尺寸

if ( argc == 2 && (src = cvLoadImage(argv[1], CV_LOAD_IMAGE_UNCHANGED)) != 0 )

{

}

else

{

src = cvLoadImage("3jpg", CV_LOAD_IMAGE_UNCHANGED);

if(!src)

{

printf("Load source image failed, please check!\n");

return -1;

}

}

dst_cvsizewidth = (int)(src->width scale); //目标图像的宽为源图象宽的scale倍

dst_cvsizeheight = (int)(src->height scale); //目标图像的高为源图象高的scale倍

dst = cvCreateImage( dst_cvsize, src->depth, src->nChannels); //构造目标图象

// cvResize(src, dst, CV_INTER_LINEAR); //缩放源图像到目标图像

cvResize(src, dst, CV_INTER_CUBIC); //缩放源图像到目标图像

cvNamedWindow(imgName[0], CV_WINDOW_AUTOSIZE); //创建用于显示源图像的窗口

cvNamedWindow(imgName[1], CV_WINDOW_AUTOSIZE); //创建用于显示目标图像的窗口

cvShowImage(imgName[0], src); //显示源图像

cvShowImage(imgName[1], dst); //显示目标图像

cvWaitKey(-1); //等待用户响应

cvReleaseImage(&src); //释放源图像占用的内存

cvReleaseImage(&dst); //释放目标图像占用的内存

cvDestroyWindow(imgName[0]);

cvDestroyWindow(imgName[1]);

return 0;

}

以上就是关于如何用实现图片的放大缩小与去阴影能用C语言写出实现的算法吗全部的内容,包括:如何用实现图片的放大缩小与去阴影能用C语言写出实现的算法吗、怎么用键盘放大图片、求一个C语言图形变换程序,先进行图形绘制,后能进行图形复制、移动、缩放、旋转,跪求啦。。。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9744142.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存