OpenCV 图像反色 垂直翻转图像
OpenCV 图像反转
/* 程序名: 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
- 图像
- 反转
- 搜索资料
我有更好的答案
提问者采纳
1、argc和*argv是命令提示符下运行的参数,现在很少用了,一般用对话框 2、那个是像素的数据 3、这个程序实现的是反色而不是反转
- 提问者评价
-
谢谢~
分享
chensuchang | 来自:芝麻团 | 十四级 采纳率31%
擅长: 电脑装机/选购 显卡 编程语言 求职就业 照相机/摄像机
OpenCV 垂直翻转图像
有两种方式,第二种方式该怎么写,求指教?详见下文代码: 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 图像反色 垂直翻转图像相关推荐
- Win8Metro(C#)数字图像处理--2.3图像反色
原文:Win8Metro(C#)数字图像处理--2.3图像反色 [函数名称] 图像反色函数ContraryProcess(WriteableBitmap src) [算法说明] 反色公式如下: ...
- IOS – OpenGL ES 调节图像反色 GPUImageColorInvertFilter
目录 一.简介 二.效果演示 三.源码下载 四.猜你喜欢 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES 基础 零基础 Ope ...
- java image 反色,C#实现图像反色的方法
//定义图像反色函数 private static Bitmap PContray (Bitmap a) { int w = a.Width; int h = a.Height; Bitmap dst ...
- matlab 二值化图像反色,图像处理——灰度化、二值化、反色、饱和度、对比度...
RGB RGB色彩模式使用RGB模型为图像中每个像素的RGB分量分配一个0~255范围内的强度值.RGB图像仅仅使用三种颜色,R(red).G(green).B(blue),就能够使它们依照不同的比例 ...
- 图像处理十:图像反色
一.原理 反色的实际含义是将R.G.B值反转.若颜色的量化级别是256,则新图的R.G.B值为255减去原图的R.G.B值.这里针对的是所有图,包括真彩图.带调色板的彩色图(又称为伪彩色图).和灰度图 ...
- Python,折线图,手写数字,图像反色、二值化、28X28
题目一: 请使用Matplotlib中的折线图工具,绘制正弦和余弦函数图像,其中x的取值范围是 要求: (1)正弦图像是蓝色曲线,余弦图像是红色曲线,线条宽度为2.5: (2)标题为:"正/ ...
- Matlab底层算法实现图像反色变换
公式 灰度的线性变换就是将图像中所有点的灰度按照线性灰度变换函数进行变换.灰度变换方程为: ...
- 图像补运算:MatIterator_迭代器反色处理
#include <opencv2/opencv.hpp> #include <opencv2/video/background_segm.hpp>// 注意srcImage为 ...
- 图像遍历反色处理,遍历多通道图片
#include <opencv2/core/core.hpp> #include <opencv2/highgui/highgui.hpp> #include <ios ...
最新文章
- 【SVN】svn“E155017工作副本的参考文件损坏、E200014文件校验和不匹配”的解决方法
- ChaosBlade x SkyWalking 微服务高可用实践
- PouchContainer 富容器技术解析
- BAT机器学习面试1000题系列(第1~10题)
- java 轻量级map,java Map 遍历速度最优解
- 小白开学Asp.Net Core 《七》
- 知名设计师晒iPad mini 6渲染图:取消Home键 依旧不支持120Hz刷新率
- JavaScript简介及基础知识(1)
- 大数据_MapperReduce_从CSV文件中读取数据到Hbase_测试---Hbase工作笔记0022
- 【编辑器】用CodeRunner打造VScode的C++开发环境
- mapabc 地图失效不能进行任何操作
- ★关于人类体质弱化的分析
- 数据库系统原理与应用教程(081)—— MySQL 视图(View)的创建与使用
- linux性能监控工具perf,Linux性能分析中常用的工具perf介绍
- Android 网络框架 Retrofit2.0介绍、使用和封装
- 数据库驱动和JDBC、DBCP-C3P0连接池
- Android开发——适配终结者AutoLayout
- Java基础学习笔记(十九)—— 多线程(1)
- python+ tkinter做的一个项目辅助测试工具
- 2022.1.10第六天笔记