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 的在出错时自动中断的功能,可能会找到出错的地方;但也可能因为溢出导致调用堆栈异常,看不到调用堆栈。

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

报告相同问题?

悬赏问题

  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥65 汇编语言除法溢出问题