OpenCV 图像反转

举报描述不清违规检举侵权投诉| 分享| 2011-07-14 08:48 derekpw | 浏览 2270 次
/*
程序名: 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.这个程序我怎么调试都实现不了图像反转,麻烦指出错误的地方。希望经验丰富的朋友帮帮忙,最好不要复制黏贴~谢谢:)

可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。

  • opencv
  • 图像
  • 反转
  • 搜索资料

我有更好的答案

举报描述不清违规检举侵权投诉|2011-07-14 10:36

#“谁是脑力达人”赛前预热正式开启!#

提问者采纳

1、argc和*argv是命令提示符下运行的参数,现在很少用了,一般用对话框
2、那个是像素的数据
3、这个程序实现的是反色而不是反转
提问者评价
谢谢~

分享

评论 | 给力13 不给力0

chensuchang | 来自:芝麻团 | 十四级 采纳率31%

擅长: 电脑装机/选购 显卡 编程语言 求职就业 照相机/摄像机

OpenCV 垂直翻转图像

分享| 44 分钟前 autumn20080101 | 浏览 1 次
软件图像处理 修改标签
有两种方式,第二种方式该怎么写,求指教?详见下文代码:
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;
#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;

OpenCV 图像反色 垂直翻转图像相关推荐

  1. Win8Metro(C#)数字图像处理--2.3图像反色

    原文:Win8Metro(C#)数字图像处理--2.3图像反色 [函数名称] 图像反色函数ContraryProcess(WriteableBitmap src) [算法说明] 反色公式如下:     ...

  2. IOS – OpenGL ES 调节图像反色 GPUImageColorInvertFilter

    目录 一.简介 二.效果演示 三.源码下载 四.猜你喜欢 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES 基础 零基础 Ope ...

  3. java image 反色,C#实现图像反色的方法

    //定义图像反色函数 private static Bitmap PContray (Bitmap a) { int w = a.Width; int h = a.Height; Bitmap dst ...

  4. matlab 二值化图像反色,图像处理——灰度化、二值化、反色、饱和度、对比度...

    RGB RGB色彩模式使用RGB模型为图像中每个像素的RGB分量分配一个0~255范围内的强度值.RGB图像仅仅使用三种颜色,R(red).G(green).B(blue),就能够使它们依照不同的比例 ...

  5. 图像处理十:图像反色

    一.原理 反色的实际含义是将R.G.B值反转.若颜色的量化级别是256,则新图的R.G.B值为255减去原图的R.G.B值.这里针对的是所有图,包括真彩图.带调色板的彩色图(又称为伪彩色图).和灰度图 ...

  6. Python,折线图,手写数字,图像反色、二值化、28X28

    题目一: 请使用Matplotlib中的折线图工具,绘制正弦和余弦函数图像,其中x的取值范围是 要求: (1)正弦图像是蓝色曲线,余弦图像是红色曲线,线条宽度为2.5: (2)标题为:"正/ ...

  7. Matlab底层算法实现图像反色变换

    公式 灰度的线性变换就是将图像中所有点的灰度按照线性灰度变换函数进行变换.灰度变换方程为:                                                        ...

  8. 图像补运算:MatIterator_迭代器反色处理

    #include <opencv2/opencv.hpp> #include <opencv2/video/background_segm.hpp>// 注意srcImage为 ...

  9. 图像遍历反色处理,遍历多通道图片

    #include <opencv2/core/core.hpp> #include <opencv2/highgui/highgui.hpp> #include <ios ...

最新文章

  1. 【SVN】svn“E155017工作副本的参考文件损坏、E200014文件校验和不匹配”的解决方法
  2. ChaosBlade x SkyWalking 微服务高可用实践
  3. PouchContainer 富容器技术解析
  4. BAT机器学习面试1000题系列(第1~10题)
  5. java 轻量级map,java Map 遍历速度最优解
  6. 小白开学Asp.Net Core 《七》
  7. 知名设计师晒iPad mini 6渲染图:取消Home键 依旧不支持120Hz刷新率
  8. JavaScript简介及基础知识(1)
  9. 大数据_MapperReduce_从CSV文件中读取数据到Hbase_测试---Hbase工作笔记0022
  10. 【编辑器】用CodeRunner打造VScode的C++开发环境
  11. mapabc 地图失效不能进行任何操作
  12. ★关于人类体质弱化的分析
  13. 数据库系统原理与应用教程(081)—— MySQL 视图(View)的创建与使用
  14. linux性能监控工具perf,Linux性能分析中常用的工具perf介绍
  15. Android 网络框架 Retrofit2.0介绍、使用和封装
  16. 数据库驱动和JDBC、DBCP-C3P0连接池
  17. Android开发——适配终结者AutoLayout
  18. Java基础学习笔记(十九)—— 多线程(1)
  19. python+ tkinter做的一个项目辅助测试工具
  20. 2022.1.10第六天笔记

热门文章

  1. 奥村方法计算机仿真,实验3-Okumura-Hata方法计算计算机仿真.docx
  2. 从5G向6G演进的三维连接
  3. 构建复杂应用的神器,FBroadcast
  4. 【红宝书笔记精简版】 第二十四章 网络请求与远程资源
  5. 用Qt写一个简单的音乐播放器(一):使用QMediaPlayer播放音乐
  6. (2022.5.31)网件路由器R6400--梅林改装home assistant
  7. DaoCloud贾恒:一文搞懂发布现代化
  8. python从入门到实践13章答案
  9. 【Typescript入门手册】一篇文章速览常见类型
  10. 企业网页制作一般流程总结