cvPerspectiveTransform
2016-11-29 11:08
821 查看
今天使用cvPerspectiveTransform映射,编译通过,运行时总是显示OpenCV
Error: Bad flag (parameter or structure field) (Unrecognized or unsupported array type) in cvGetMat............ 通过查找其使用方法,输入输出如下:
src :
Source two-channel or three-channel floating-point array. Each element is a 2D/3D vector to be transformed.dst : Destination
array of the same size and type as src .mtx:3x3 or 4x4 floating-point
transformation matrix.
从网上抄来一个可以执行的例子:
#include
<cv.h>
#include
<highgui.h>
using
namespace
cv;
void
main(){
float
A[] = {1
, 0
, 0
, 0
, 0
, 2
, 0
, 10
, 0
, 0
, 1
, 20
, 0
, 0
, 0
, 1}
;
CvMat *perMat
= cvCreateMat(4
, 4
, CV_32FC1) ;//透视投影变换矩阵
cvInitMatHeader(perMat
, 4
, 4,
CV_32FC1 , A) ;
float
s[] = {10
, 20
, 30}
;
CvMat *src
= cvCreateMat(1
, 1
, CV_32FC3) ;//待变换点
cvInitMatHeader(src
, 1
, 1
, CV_32FC3 , s) ;
CvMat *dst
= cvCreateMat(1
, 1
, CV_32FC3) ;//变换后点
cvPerspectiveTransform(src
, dst , perMat) ;
std::cout<<std::endl
;
for
(int
i = 0
; i < 1
; i++)
{
float
*pdata = (float*)(dst->data.ptr)
;
std::cout<<*pdata<<"\t"<<*(pdata
+ 1)<<"\t"<<*(pdata
+ 2)
;
}
std::cout<<std::endl
;
}
Error: Bad flag (parameter or structure field) (Unrecognized or unsupported array type) in cvGetMat............ 通过查找其使用方法,输入输出如下:
src :
Source two-channel or three-channel floating-point array. Each element is a 2D/3D vector to be transformed.dst : Destination
array of the same size and type as src .mtx:3x3 or 4x4 floating-point
transformation matrix.
从网上抄来一个可以执行的例子:
#include
<cv.h>
#include
<highgui.h>
using
namespace
cv;
void
main(){
float
A[] = {1
, 0
, 0
, 0
, 0
, 2
, 0
, 10
, 0
, 0
, 1
, 20
, 0
, 0
, 0
, 1}
;
CvMat *perMat
= cvCreateMat(4
, 4
, CV_32FC1) ;//透视投影变换矩阵
cvInitMatHeader(perMat
, 4
, 4,
CV_32FC1 , A) ;
float
s[] = {10
, 20
, 30}
;
CvMat *src
= cvCreateMat(1
, 1
, CV_32FC3) ;//待变换点
cvInitMatHeader(src
, 1
, 1
, CV_32FC3 , s) ;
CvMat *dst
= cvCreateMat(1
, 1
, CV_32FC3) ;//变换后点
cvPerspectiveTransform(src
, dst , perMat) ;
std::cout<<std::endl
;
for
(int
i = 0
; i < 1
; i++)
{
float
*pdata = (float*)(dst->data.ptr)
;
std::cout<<*pdata<<"\t"<<*(pdata
+ 1)<<"\t"<<*(pdata
+ 2)
;
}
std::cout<<std::endl
;
}
相关文章推荐
- cvPerspectiveTransform
- 【OpenCV3】透视变换——cv::getPerspectiveTransform()与cv::warpPerspective()详解
- CSS3 Transform的perspective属性
- CSS3变形之Transform-style和Perspective等属性
- Transform-style和Perspective属性
- 吃透css3之3d属性--perspective和transform
- [OpenCv]使用getPerspectiveTransform()函数实现Perspective Effect(透视效果)
- opencv 调用 getPerspectiveTransform 函数报错
- 透视变换的原理推导(cvGetPerspectiveTransform)
- 实例讲解CSS3中Transform的perspective属性的用法
- Transform-style和Perspective属性
- Transform-style和Perspective属性
- 实例讲解CSS3中Transform的perspective属性的用法
- 第101天:CSS3中transform-style和perspective
- opencv透视变换GetPerspectiveTransform的总结
- Transform-style和Perspective属性
- Transform-style和Perspective属性
- cvWarpPerspective:透视变换
- Transform的perspective属性设置
- 透视变换矩阵(单应矩阵)计算:findHomography 与 getPerspectiveTransform