手机版

实验4 图像几何变换—哈哈镜制作(5)

时间:2025-04-22   来源:未知    
字号:

vc++实现图像放大、缩小、平移、旋转、各种哈哈镜变形

#define PI 3.1415926

// 哈哈镜制作

int main( int argc, char** argv ) {

IplImage* pImg; //声明IplImage指针 IplImage* pImg1; //声明IplImage指针 int i,j;

int x,y; int method; CvSize size; double tmp;

int angle = 45; double factor;

float m[6]; int width_rotate; int height_rotate;

CvMat M = cvMat (2, 3, CV_32F, m);

printf("0: 缩小\n1: 放大\n2: 水平外凹\n3: 水平外凸\n4: 梯形变形\n5: 三角形变形\n6: S形变形printf("请输入数字0—7,选择你需要的变换:\n"); scanf("%d",&method);

\n7: 图片旋转\n8: 图片平移\n");

//载入图像

pImg = cvLoadImage( "gg.bmp", 1); cvNamedWindow( "Image", 1 );//创建窗口 cvShowImage( "Image", pImg );//显示图像

printf("%d,%d",pImg->width,pImg->height); switch(method) {

// 最邻近插值图像缩小 case DOWNRESIZE:

size = cvSize(q*pImg->width,q*pImg->height); for(i=0;i<pImg1->height;i++)

for(j=0;j<pImg1->width;j++) {

float srcX=(float)(j*((float)pImg->width/(float)pImg1->width)); float srcY=(float)(i*((float)pImg->height/(float)pImg1->height)); int int_srcX=(int)srcX; int int_srcY=(int)srcY;

for(int k=0;k<pImg1->nChannels;k++)

pImg1 = cvCreateImage(size,pImg->depth,pImg->nChannels);

实验4 图像几何变换—哈哈镜制作(5).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
×
二维码
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)