liyao18817323547 2015-01-11 15:39 采纳率: 100%
浏览 2436
已采纳

图像透视变换程序:如何调试缓冲区溢出问题

求大神指导,小弟万分感谢!

#include
#include
#include

using namespace cv;
using namespace std;

#define WINDOW_NAME1 "【原始图窗口】" //为窗口标题定义的宏
#define WINDOW_NAME2 "【经过perspective后的图像】" //为窗口标题定义的宏

int main( )
{
Point2f srcTriangle[3];//定义两组点,代表两个四边形
Point2f dstTriangle[3];

Mat rotMat( 3, 3, CV_32FC1 );//定义一些Mat变量
Mat warpMat( 3, 3, CV_32FC1 );
Mat srcImage, dstImage;

srcImage = imread( "picture.jpg", 1 );//加载源图像并作一些初始化
if(!srcImage.data ) { printf("读取图片错误,请确定目录下是否有imread函数指定的图片存在~! \n"); return false; } 

dstImage = Mat::zeros( srcImage.rows, srcImage.cols, srcImage.type() );// 设置目标图像的大小和类型与源图像一致

srcTriangle[0] = Point2f( 403, 189 );//设置源图像和目标图像上的四组点以计算透视变换
srcTriangle[1] = Point2f( 610, 202 );
srcTriangle[2] = Point2f( 382, 370 );
srcTriangle[3] = Point2f( 617, 379 );

dstTriangle[0] = Point2f( 320, 240);
dstTriangle[1] = Point2f( 640, 240);
dstTriangle[2] = Point2f( 320, 480);
dstTriangle[3] = Point2f( 640, 480);

warpMat = getPerspectiveTransform( srcTriangle, dstTriangle );

perspectiveTransform( srcImage, dstImage, warpMat );

imshow( WINDOW_NAME1, srcImage );
imshow( WINDOW_NAME2, dstImage );

waitKey(0);

return 0;

}

  • 写回答

1条回答 默认 最新

  • 91program 博客专家认证 2015-01-11 23:45
    关注

    调试缓冲区溢出,主要还是分析源代码,依靠调试当然是需要的。但调试不是万能的,自己要分析一下程序哪里可能产生缓冲区溢出?
    依靠调试工具,如 VS 的在出错时自动中断的功能,可能会找到出错的地方;但也可能因为溢出导致调用堆栈异常,看不到调用堆栈。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥20 iqoo11 如何下载安装工程模式
  • ¥15 flask项目,怎么使用AJAX传数据库数据到echarts图表的data里,实现异步加载数据。
  • ¥15 本题的答案是不是有问题
  • ¥15 关于#r语言#的问题:(svydesign)为什么在一个大的数据集中抽取了一个小数据集
  • ¥15 C++使用Gunplot
  • ¥15 这个电路是如何实现路灯控制器的,原理是什么,怎么求解灯亮起后熄灭的时间如图?
  • ¥15 matlab数字图像处理频率域滤波
  • ¥15 在abaqus做了二维正交切削模型,给刀具添加了超声振动条件后输出切削力为什么比普通切削增大这么多
  • ¥15 ELGamal和paillier计算效率谁快?
  • ¥15 蓝桥杯单片机第十三届第一场,整点继电器吸合,5s后断开出现了问题