资源简介
主要是图像旋转的算法实现,工程完整,代码详细,并且有相应的博客,可查看我的博客就能看到设计思路

代码片段和文件信息
#include “rotation.h“
CvMat* rotation(CvMat *img_datadouble angle)
{
CvMat *img_data_new= cvCreateMat(height_newwidth_new CV_64FC1);
for(int i=0;i {
for(int j=0;j {
/////变换回原图像坐标
int tX = (j - width_new / 2)*cos(RADIAN(360 - angle)) + (-i + height_new / 2)*sin(RADIAN(360 - angle));
int tY = -(j - width_new / 2)*sin(RADIAN(360 - angle)) + (-i + height_new / 2)*cos(RADIAN(360 - angle));
tX=tX+width_new/2;
tY=abs(tY-height_new/2);
if((tX>=0&&tX<=width_new-1)&&(tY>=0&&tY<=height_new-1))
{
int temp=cvmGet(img_datatYtX);
cvmSet(img_data_newijtemp);
}
else
cvmSet(img_data_newijbackground);
}
}
return img_data_new;
}
int find_degreed(CvMat *img_data)
{
int imin=0imax=639i_degreed=0;
int lenth=0lenthmax=0;
for(int k=1;k<=360;k++)
{
CvMat *img_data_rotation= cvCreateMat(height_newwidth_new CV_64FC1);
img_data_rotation=rotation(img_datak);
bool min_flag=0;
for(int i=0;i {
for(int j=0;j {
if(cvmGet(img_data_rotationji)==0)
{
imin=i;
min_flag=1;
break;
}
}
if(min_flag)
{
min_flag=0;
break;
}
}
bool max_flag=0;
for(int i=width_new-1;i>=0;i--)
{
for(int j=0;j {
if(cvmGet(img_data_rotationji)==0)
{
imax=i;
max_flag=1;
break;
}
}
if(max_flag)
{
max_flag=0;
break;
}
}
lenth=imax-imin;
if(lenth>lenthmax)
{
lenthmax=lenth;
i_degreed=k;
}
// cout< }
return i_degreed;
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 91814 2014-10-03 14:16 test\Lena.jpg
文件 1674 2014-12-17 21:04 test\rotation.cpp
文件 156 2014-12-17 20:37 test\rotation.h
文件 297 2014-12-17 21:04 test\sys.h
文件 931 2014-12-17 21:02 test\test.cpp
文件 38275 2014-12-17 13:21 test\test.gif
文件 4062 2014-12-17 20:20 test\test.vcxproj
文件 1240 2014-12-17 20:20 test\test.vcxproj.filters
文件 143 2014-07-31 14:03 test\test.vcxproj.user
目录 0 2014-12-17 21:26 test
----------- --------- ---------- ----- ----
138592 10
- 上一篇:舵机的proteus仿真电路
- 下一篇:武汉市医院poi电子地图
相关资源
- 图像二值化
- 基于OpenCV的数字识别468815
- 使用opencv去掉二值化图像中黑色面积
- opencv环境配置
- win10 64位下编译的opencv4.5.5库,opencv
- NVIDIAOpticalFlowSDK-79c6cee80a2df9a196f20afd6
- opencv_contrib-3.4.0.zip
- opencv2.4.9源码分析——SIFT
- 用两个摄像头实现,双目标定,双目
- opencv_traincascade训练分类器,手势识别
- opencv3.0交叉编译用parallel.cpp
- 基于opencv的图像识别识别图像中的色
- 基于openCV的识别特定颜色区域
- 基于OpenCV的分水岭算法实现
- QT+opencv+OCR 身份证号码,银行卡号识别
- opencv视频特定颜色区域识别
- 把RGB转换为HSV和HSI然后根据黄色和蓝
- opencv视觉测距
- 基于Qt和opencv的身份证号码识别系统
- opencv_ffmpeg249.dll
- 图像标准测试灰度图片
- SfM稀疏三维点云重建--完整工程文件
- 基于opencv的数人头程序源代码
- 最简单的基于FFmpeg的libswscale的教程
- 利用OpenCV中的Stitcher类实现全景图像拼
- opencv实现的sift算法源码,包含了图像
- openCV 上的小波变换
- 基于OPENCV的车牌识别系统设计
- jpeglib读取jpeg,转为bmp图,24真彩和灰
- 617张国内车牌60-17bmp图片用于OpenCV正样
评论
共有 条评论