全景图像展开
来源:互联网 发布:ubuntu谷歌拼音输入法 编辑:程序博客网 时间:2024/06/05 04:17
- #include <fstream.h>
- #include <math.h>
- #include <cv.h>
- #include <highgui.h>
- #define PI 3.1415926
- int inner_Radius = 50; //全景图像的内径
- int outer_Radius = 100; //全景图像的外径
- int x_dot = 177; //全景图像的圆心X坐标
- int y_dot = 130; //全景图像的圆心y坐标
- int Width = int(2 * PI * outer_Radius); //展开图像的宽
- int Height = outer_Radius - inner_Radius; //展开图像的高
- //获取角度
- double GetAngle(int i_ExpandWidth,int i_ExpandHeight)
- {
- double dw_Angle = (double)i_ExpandWidth/(double)outer_Radius ;
- return dw_Angle;
- }
- int GetRadius(int i_ExpandWidth,int i_ExpandHeight)
- {
- return i_ExpandHeight ;
- }
- CvPoint FindPoint(double dw_Angle,int i_Radius)
- {
- double x,y;
- i_Radius += inner_Radius;
- x = i_Radius * cos(dw_Angle) + x_dot;
- y = i_Radius * sin(dw_Angle) + y_dot;
- CvPoint pt = {(int)x,(int)y};
- return pt;
- }
- uchar* GetRGB(int x,int y,IplImage* src)
- {
- uchar* temp_src=&((uchar*)(src->imageData + src->widthStep * y))[x * 3]; //读取图片像素值
- return temp_src;
- }
- void main()
- {
- int i,j;
- double dw_Angle;
- int i_Radius;
- CvPoint pt;
- IplImage* src,* dst;
- src = cvLoadImage("src.bmp");
- dst = cvCreateImage(cvSize(Width,Height),8,3);
- dst->origin = 0; //dst初始位置赋值为0
- cvZero(dst);
- for(i = 0 ; i < Width ; i++)
- for(j = 0 ; j < Height ; j++)
- {
- dw_Angle = GetAngle(i,j);
- i_Radius = GetRadius(i,j);
- pt = FindPoint( dw_Angle, i_Radius);
- uchar* temp_src = GetRGB( pt.x,pt.y,src);
- ((uchar*)(dst->imageData + dst->widthStep * j))[i * 3] = temp_src[0];
- ((uchar*)(dst->imageData + dst->widthStep * j))[i * 3 + 1] = temp_src[1];
- ((uchar*)(dst->imageData + dst->widthStep * j))[i * 3 + 2] = temp_src[2];
- }
- cvSaveImage("dst.bmp", dst);
- cvNamedWindow( "Image src view", 1 );
- cvNamedWindow( "Image dst view", 1 );
- cvShowImage( "Image src view", src );
- cvShowImage( "Image dst view", dst );
- cvWaitKey(0);
- cvDestroyWindow( "Image src view" );
- cvDestroyWindow( "Image dst view" );
- cvReleaseImage( &src );
- cvReleaseImage( &dst );
- }
阅读全文
0 0
- 全景图像展开
- 全景:全景图像展开算法opencv代码
- 双鱼眼全景展开拼接
- 全景图像的拼接
- 360全景图像拼接
- opencv图像全景拼接
- 鱼眼图像全景拼接
- 关于全景图像的拼接
- 关于全景图像的拼接
- 360度全景图像制作
- 关于全景图像的拼接
- 基于OpenCV全景图像拼接
- 图像变形(1)矩形全景图像还原
- 全景图像&拼接(一)关于全景拼接论文推荐
- 关于全景图像的无缝拼接
- 基于SIFT特征的全景图像拼接
- 基于SIFT特征的全景图像拼接
- 基于SIFT特征的全景图像拼接
- 第三周 项目4-顺序表应用 (2)
- Doctype作用?严格模式与混杂模式如何区分?它们有何差异?
- 游戏BI数据统计分析相关
- Python自动化(六)使用xlwt操作Excel
- 《C编码实践篇》实验二——命令行菜单小程序的实现
- 全景图像展开
- mongodb 添加用户名密码验证
- 第三周项目3求集合并集
- 利用Spark mllib识别点阵文本
- SSL证书之神秘预证书
- 剑指offer——54.字符流中第一个不重复的字符
- java项目配置文件路径获取
- 音频文件的上传和合并
- centeros 升级 python 版本,以及添加pip