OpenCV 图像反转
/*程序名:invImage.c功能:读入图像文件,进行图像翻转并显示在屏幕上*/#include<stdlib.h>#include<stdio.h>#include<...
/*
程序名: invImage.c
功 能: 读入图像文件,进行图像翻转并显示在屏幕上
*/
#include<stdlib.h>
#include<stdio.h>
#include<math.h>
#include"cv.h"
#include"highgui.h"
int main(int argc,char *argv[])
{
IplImage *img=0;
int i,j,k;
uchar *data;
int height,width,step,channels;
if(argc<2)
{
printf("Usage:InvImage banboo.jpg \n\7");
exit(0);
}
//载入图像
img=cvLoadImage(argv[1],1);
if(!img)
{
printf("Could not load image file: %s\n",argv[1]);
exit(0);
}
//获取图像信息
height = img->height;
width = img->width;
step = img->widthStep/sizeof(uchar);
channels = img->nChannels;
data = (uchar *)img->imageData;
printf("Processing a %d×%d image with %d channels\n",height,width,channels);
//创建窗口
cvNamedWindow("mainWin",CV_WINDOW_AUTOSIZE);
cvMoveWindow("mainWin",100,100);
//反转图像
for(i=0;i<height;i++)
for(j=0;j<width;j++)
for(k=0;k<channels;k++)
data[i*step+j*channels+k]=255-data[i*step+j*channels+k];
//显示图像
cvShowImage("mainWin",img);
cvWaitKey(0);
cvReleaseImage(&img);
return 0;
}
初学OpenCV想请教几个问题:
1.开始的argc和*argv分别是什么东西?难道用指针数组argv指向图像?(为什么用数组)
2.那个uchar *data 是什么东西?
3.这个程序我怎么调试都实现不了图像反转,麻烦指出错误的地方。希望经验丰富的朋友帮帮忙,最好不要复制黏贴~谢谢:) 展开
程序名: invImage.c
功 能: 读入图像文件,进行图像翻转并显示在屏幕上
*/
#include<stdlib.h>
#include<stdio.h>
#include<math.h>
#include"cv.h"
#include"highgui.h"
int main(int argc,char *argv[])
{
IplImage *img=0;
int i,j,k;
uchar *data;
int height,width,step,channels;
if(argc<2)
{
printf("Usage:InvImage banboo.jpg \n\7");
exit(0);
}
//载入图像
img=cvLoadImage(argv[1],1);
if(!img)
{
printf("Could not load image file: %s\n",argv[1]);
exit(0);
}
//获取图像信息
height = img->height;
width = img->width;
step = img->widthStep/sizeof(uchar);
channels = img->nChannels;
data = (uchar *)img->imageData;
printf("Processing a %d×%d image with %d channels\n",height,width,channels);
//创建窗口
cvNamedWindow("mainWin",CV_WINDOW_AUTOSIZE);
cvMoveWindow("mainWin",100,100);
//反转图像
for(i=0;i<height;i++)
for(j=0;j<width;j++)
for(k=0;k<channels;k++)
data[i*step+j*channels+k]=255-data[i*step+j*channels+k];
//显示图像
cvShowImage("mainWin",img);
cvWaitKey(0);
cvReleaseImage(&img);
return 0;
}
初学OpenCV想请教几个问题:
1.开始的argc和*argv分别是什么东西?难道用指针数组argv指向图像?(为什么用数组)
2.那个uchar *data 是什么东西?
3.这个程序我怎么调试都实现不了图像反转,麻烦指出错误的地方。希望经验丰富的朋友帮帮忙,最好不要复制黏贴~谢谢:) 展开
东莞大凡
2024-11-19 广告
2024-11-19 广告
作为东莞市大凡光学科技有限公司的工作人员,对于halcon标定板有所了解。Halcon标定板是高精度相机标定的关键工具,通常采用实心圆点或方格作为标志点。我们公司提供的halcon标定板,具有高精度、稳定可靠的特点,适用于机器视觉领域的各种...
点击进入详情页
本回答由东莞大凡提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询