OpenCV 垂直翻转图像

Hustudent20080101 2016-05-29 02:32:57
有两种方式,第二种方式该怎么写,求指教?详见下文代码:
static Mat frame;
cap>>frame;//从摄像头抓取一帧图像
//各种处理
imshow( "Capture",frame);


IplImage pImg= IplImage(frame);
*pWith=pImg.width;
*pHeight=pImg.height;
下面我需要对图像做垂直翻转:

#if 0
############################方式一:OK
cvFlip(&pImg,NULL,0); //核心在这里
// 垂直,水平或即垂直又水平翻转二维数组
// void cvFlip( const CvArr* src, CvArr* dst=NULL, int flip_mode=0);
//#define cvMirror cvFlip
// src 原数组.
// dst 目标责任制数组. 如果 dst = NULL 翻转是在内部替换.
// flip_mode 指定怎样去翻转数组。
// flip_mode = 0 沿X-轴翻转, flip_mode > 0 (如 1) 沿Y-轴翻转, flip_mode < 0 (如 -1) 沿X-轴和Y-轴翻转.见下面的公式
//
pImg.origin=1;
#endif


//char* data = pImg.imageDataOrigin;
char* data = pImg.imageData;

LPBYTE buffer=(BYTE*)data;
#if 1
#########################方式二:不行,求教方式二该怎么改???
for (int j=0;j<*pHeight/2;j++)
{
for (int i=0;i<*pWith;i++)
{
swap(buffer[i*(*pHeight-1-j)*3],buffer[i*j*3]);
swap(buffer[i*(*pHeight-1-j)*3+1],buffer[i*j*3+1]);
swap(buffer[i*(*pHeight-1-j)*3+2],buffer[i*j*3+2]);
}
}
#endif
return buffer;
...全文
571 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
Hustudent20080101 2016-05-29
  • 打赏
  • 举报
回复
IplImage pImg= IplImage(frame); *pWith=pImg.width; *pHeight=pImg.height; int channels = pImg.nChannels; int step = pImg.widthStep/sizeof(uchar); cvText(&pImg,"test", *pWith/2, *pHeight/2); #if 0 cvFlip(&pImg,NULL,0); //核心在这里 // 垂直,水平或即垂直又水平翻转二维数组 // void cvFlip( const CvArr* src, CvArr* dst=NULL, int flip_mode=0); //#define cvMirror cvFlip // src 原数组. // dst 目标责任制数组. 如果 dst = NULL 翻转是在内部替换. // flip_mode 指定怎样去翻转数组。 // flip_mode = 0 沿X-轴翻转, flip_mode > 0 (如 1) 沿Y-轴翻转, flip_mode < 0 (如 -1) 沿X-轴和Y-轴翻转.见下面的公式 // pImg.origin=1; #endif //char* data = pImg.imageDataOrigin; char* data = pImg.imageData; LPBYTE buffer=(BYTE*)data; #if 1 for (int i=0;i<*pHeight/2;i++) { for (int j=0;j<*pWith;j++) { for(int k=0;k<channels;k++) swap(buffer[i*step+j*channels+k],buffer[(*pHeight-1-i)*step+j*channels+k]); } } #endif return buffer; 自己搞定了

4,445

社区成员

发帖
与我相关
我的任务
社区描述
图形图像/机器视觉
社区管理员
  • 机器视觉
  • 迪菲赫尔曼
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧