1. CImage图像旋转问题
哪有那么复杂,只要用CImage的PlgBlt方法就可以解决90度,180度和反转的问题。
例:
CImage* m_pCurrentFrame;
CPoint m_DisplayPoints[3]; // 放着旋转后的四边形的3个顶点 如果逆时针旋转90度
// m_DisplayPoints[0] 右上角,m_DisplayPoints[1] 左上角
// m_DisplayPoints[3] 右下角
int width,height; // 源图的宽和高
m_pCurrentFrame->PlgBlt(dc,m_DisplayPoints,0,0,width,height); // m_pCurrentFrame 转90度
2. 我也想要C语言编写的双线性插值的图像旋转的,请发我邮箱[email protected] 万分感激!!可以输入角度的那种
算法示例,见邮箱
3. 丽江电脑培训学校告诉你C语言图像处理方法
1.图像平移
图像平移只是改变图像在屏幕上的位置,图像本身并不发生变化。
假设原图像区域左上角坐标为(x0,y0),右下角坐标为(x1,y1),将图像分别沿x和y轴平移dx和dy,则新图像的左上角坐标为(x0+dx,y0+dy),右下角坐标为(x1+dx,y1+dy)。
在屏幕上实现图像的移动分为四个步骤:
⑴保存原图像到缓冲区。
⑵擦除原图像。
⑶计算平移后的新坐标。
⑷在新的坐标位置重新显示原图像。
2.图像颠倒
图像颠倒是指把定义好的图像区域上下翻转地显示在屏幕上。分析图像颠倒的过程,可发现每行的图像信息都保持不变,而只是改变了行的顺序,将第一行与最后的第n行相互交换,第二行与第n-1行交换??,依此类推,从而实现了图像的颠倒。只需采用按行交换的方式,即可方便地修改缓冲区内容,实现图像的颠倒。
3.图像镜像变换
镜像变换是指将指定区域的图像左右翻转地显示在屏幕。分析镜像变换过程可以发现:每行图像信息的处理方式是相同的,而且行顺序不发生变化,只是每一行的像素信息按从左到右的顺序进行了左右颠倒,从而实现了镜像变换。因此,采用按行逐点变换的方式实现图像的镜像。
4.图像旋转
图像旋转是指把定义的图像绕某一点以逆时针或顺时针方向旋转一定的角度,丽江电脑培训http://www.kmbdqn.cn/认为通常是指绕图像的中心以逆时针方向旋转。
4. C语言 图形翻转``
#include<stdio.h>
main()
{
int a[100][100],i,j,n,m,t,s,k;
scanf("%d %d %d",&m,&n,&t);//M为行 N为列 T为翻转的方式
for(i=0;i<m;i++)
{ for(j=0;j<n;j++)
scanf("%d",&a[i][j]);
}
if(t==1)
{
for(s=0;s<i/2;s++)
for(j=0;j<n;j++)
{
k=a[i-s-1][j];
a[i-s-1][j]=a[s][j];
a[s][j]=k;
}
}
if(t==-1)
{for(s=0;s<j/2;s++)
for(i=0;i<m;i++)
{
k=a[i][j-s-1];
a[i][j-s-1]=a[i][s];
a[i][s]=k;
}
}
for(i=0;i<m;i++)
{ for(j=0;j<n;j++)
printf(" %d",a[i][j]);
printf("\n");
}
}
5. C语言图像处理方法
1.图像平移
图像平移只是改变图像在屏幕上的位置,图像本身并不发生变化。
假设原图像区域左上角坐标为(x0,y0),右下角坐标为(x1,y1),将图像分别沿x和y轴平移dx和dy,则新图像的左上角坐标为(x0+dx,y0+dy),右下角坐标为(x1+dx,y1+dy)。
在屏幕上实现图像的移动分为四个步骤:
⑴保存原图像到缓冲区。
⑵擦除原图像。
⑶计算平移后的新坐标。
⑷在新的坐标位置重新显示原图像。
2.图像颠倒
图像颠倒是指把定义好的图像区域上下翻转地显示在屏幕上。分析图像颠倒的过程,可发现每行的图像信息都保持不变,而只是改变了行的顺序,将第一行与最后的第n行相互交换,第二行与第n-1行交换??,依此类推,从而实现了图像的颠倒。只需采用按行交换的方式,即可方便地修改缓冲区内容,实现图像的颠倒。
3.图像镜像变换
镜像变换是指将指定区域的图像左右翻转地显示在屏幕。分析镜像变换过程可以发现:每行图像信息的处理方式是相同的,而且行顺序不发生变化,只是每一行的像素信息按从左到右的顺序进行了左右颠倒,从而实现了镜像变换。因此,采用按行逐点变换的方式实现图像的镜像。
4.图像旋转
图像旋转是指把定义的图像绕某一点以逆时针或顺时针方向旋转一定的角度,云南电脑培训http://www.kmbdqn.cn/认为通常是指绕图像的中心以逆时针方向旋转。
6. 函数旋转的计算方法是什么
函数旋转的计算方法是:设函数以原点旋转了某一角度a(非180°的整数倍),则直线x=c与函数旋转后的图像交点情况与将直线x=c旋转-a和函数旋转前的图像交点情况一样。
直线x=c旋转非180°的整数倍角后的方程为y=kx+b与y=x^2联立得x^2-kx-b=0所以存在b(b可随k变化)使得对任意k都有x^2-kx-b=0有两个不同根。非180°的整数倍,都存在一条平行于y轴的直线与旋转后的函数图像有两个交点,即一个x对应两个y。
函数的近代定义
是给定一个数集A,假设其中的元素为x,对A中的元素x施加对应法则f,记作f(x),得到另一数集B,假设B中的元素为y,则y与x之间的等量关系可以用y=f(x)表示,函数概念含有三个要素:定义域A、值域B和对应法则f。其中核心是对应法则f,它是函数关系的本质特征。
7. 求c语言高手赐一个关于图像旋转的程序,谢谢!!
原型:
int WINAPI icePub_imgCircumgyrate(char *strImgFilename,char *strBmpFilename,int radian)
输入:strImgFilename 待处理图像文件名
strBmpFilename 结果bmp文件名
radian 旋转角度
输出:
typedef int (WINAPI ICEPUB_IMGCIRCUMGYRATE)(char *strImgFilename,char *strBmpFilename,int radian);
ICEPUB_IMGCIRCUMGYRATE *icePub_imgCircumgyrate = 0;
HINSTANCE hDLLDrv = LoadLibrary("icePubDll.dll");
if(hDLLDrv)
{
icePub_imgCircumgyrate=(ICEPUB_IMGCIRCUMGYRATE *)GetProcAddress(hDLLDrv,"icePub_imgCircumgyrate");
}
if(icePub_imgCircumgyrate)
{
icePub_imgCircumgyrate("a.jpg","a1.bmp",45);
icePub_imgCircumgyrate("d.png", "d1.bmp",120);
}
if(hDLLDrv)
FreeLibrary(hDLLDrv);
8. 云南电脑培训分享C语言图像处理方法
1.图像平移
图像平移只是改变图像在屏幕上的位置,图像本身并不发生变化。
假设原图像区域左上角坐标为(x0, y0),右下角坐标为(x1, y1),将图像分别沿x和y轴平移dx和dy,则新图像的左上角坐标为(x0 +dx, y0+dy),右下角坐标为(x1+dx, y1+dy)。
在屏幕上实现图像的移动分为四个步骤:
⑴ 保存原图像到缓冲区。
⑵ 擦除原图像。
⑶ 计算平移后的新坐标。
⑷ 在新的坐标位置重新显示原图像。
2.图像颠倒
图像颠倒是指把定义好的图像区域上下翻转地显示在屏幕上。分析图像颠倒的过程,可发现每行的图像信息都保持不变,而只是改变了行的顺序,将第一行与最后的第n行相互交换,第二行与第n-1行交换,依此类推,从而实现了图像的颠倒。只需采用按行交换的方式,即可方便地修改缓冲区内容,实现图像的颠倒。
3.图像镜像变换
镜像变换是指将指定区域的图像左右翻转地显示在屏幕。分析镜像变换过程可以发现:每行图像信息的处理方式是相同的,而且行顺序不发生变化,只是每一行的像素信息按从左到右的顺序进行了左右颠倒,从而实现了镜像变换。因此,采用按行逐点变换的方式实现图像的镜像。
4.图像旋转
图像旋转是指把定义的图像绕某一点以逆时针或顺时针方向旋转一定的角度,云南电脑培训http://www.kmbdqn.com/认为 通常是指绕图像的中心以逆时针方向旋转。