opencv图片右转函数

因为需要将函数进行右转,发现opencv自带 的过于麻烦。自己写了个右转的。可以根据这个想法写出任何方向的

 1 //函数功能,右转图片
 2 IplImage* convertImage(IplImage* image)
 3 {
 4     CvSize size = cvGetSize(image);
 5     IplImage* ori_image = cvCreateImage(cvSize(size.width / 2, size.height / 2), image->depth, image->nChannels);
 6     IplImage* cvt_image = cvCreateImage(cvSize(size.height / 2, size.width / 2), image->depth, image->nChannels);
 7     cvResize(image, ori_image);
 8     int x, y, w;
 9     for (y = ori_image->height; y >= 0; y--)
10     {
11         uchar* oriptr = (uchar*)(ori_image->imageData + y*ori_image->widthStep);
12         for (x = 0; x < ori_image->width; x++)
13         {
14             uchar* curptr = (uchar*)(cvt_image->imageData + x*cvt_image->widthStep);
15             curptr[3 * y] = oriptr[3 * x];
16             curptr[3 * y + 1] = oriptr[3 * x + 1];
17             curptr[3 * y + 2] = oriptr[3 * x + 2];
18         }
19     }
20     cvReleaseImage(&image);
21     cvReleaseImage(&ori_image);
22     return cvt_image;
23 }
时间: 2024-10-10 08:30:56

opencv图片右转函数的相关文章

C++开发人脸性别识别教程(4)——OpenCv的人脸检测函数

这个项目主要包含三部分:人脸检测.特征提取.性别分类: 这篇博客中我们重点介绍OpenCv的人脸检测函数.这篇博客我们先不提MFC,而是在win32控制台下编写一段人脸检测的程序. 一.开启摄像头 我们先讲解如何通过摄像头来采集图像,这听起来更有实际意义. 1.新建工程并配置OpenCv(注意工程类型选择win32控制台应用程序): 2.包含头文件 OpenCv2.x版本包含头文件非常方便,一句话搞定: #include <opencv2\opencv.hpp> using namespace

OpenCV的阈值化函数threshold

在OpenCV中,threshold用来进行对图像(二维数组)的二值化阈值处理 通过查找OpenCV在线文档,发现存在很多函数: 其函数原型如下: 1. C版本的:函数原型: void cvThreshold( const CvArr* src, CvArr* dst, double threshold,double max_value, int threshold_type ); src,dst: 不必多说,其要求类型一致性: threshold:需要设置的阈值,当像素值大于某个数字时,设定一

openCV中的findHomography函数分析以及RANSAC算法的详解

本文将openCV中的RANSAC代码全部挑选出来,进行分析和讲解,以便大家更好的理解RANSAC算法.代码我都试过,可以直接运行. 在计算机视觉和图像处理等很多领域,都需要用到RANSAC算法.openCV中也有封装好的RANSAC算法,以便于人们使用.关于RANSAC算法的一些应用,可以看我的另一篇博客: 利用SIFT和RANSAC算法(openCV框架)实现物体的检测与定位,并求出变换矩阵(findFundamentalMat和findHomography的比较) 但是前几天师弟在使用op

c++截取屏幕图片并保存(函数代码实现)

<strong> //获取桌面窗体的CDC CDC *pdeskdc = GetDesktopWindow()->GetDC(); CRect re; //获取窗体的大小 GetDesktopWindow()->GetClientRect(&re); CBitmap bmp; bmp.CreateCompatibleBitmap(pdeskdc , re.Width() , re.Height()); //创建一个兼容的内存画板 CDC memorydc; memorydc

HTML5时代的纯前端上传图片预览及严格图片格式验证函数(转载)

原文地址:http://www.2cto.com/kf/201401/274752.html 一.要解决什么样的问题? 在写这个函数之前,有们童鞋在群里问如何纯前端严格验证图片格式.这在html5时代之前,那是不可能实现的,必须要上传到后台,由后台脚本读取文本流后进一步验证.这样就造成了一定的服务器资源浪费.但是html5时代,这个工作我们完全可以交给前端来做了. 另一方面,html5时代,许多我们原来的图片预览方案都失效了.究其原因,其实是现代浏览器出于对用户隐私的保护,file控件不再提供真

opencv cvLoadImage()函数加载的时候,路径问题

//char* tem = (char*)pathOfImg.GetBuffer(pathOfImg.GetLength()); opencv  cvLoadImage()函数加载的时候......... 试了各种转化的函数什么的,都没有把路径弄对.最后下面的才正确. CString类型转化为const char*: CString filename; const char* tmp = NULL;std::string tempname = (LPCSTR)CStringA(filename)

Ubuntu 14.04 下使用 OpenCV 图片二值化处理

参考: OpenCV - Ubuntu 14.04 64 bit 图片二值化工具 Ubuntu 14.04 下使用 OpenCV 图片二值化处理 TBD. 原文地址:https://www.cnblogs.com/qq952693358/p/8996719.html

基于opencv图片切割

基于opencv图片切割为n个3*3区块 工作原因,切割图片,任务急,暂留调通的源码,留以后用. package com.rosetta.image.test; import org.opencv.core.Core; import org.opencv.core.Mat; import org.opencv.core.Rect; import org.opencv.highgui.Highgui; /** * @Author: nya * @Date: 18-8-28 下午5:50 */ pu

5、opencv中的绘图函数

1.目标 a.学习使用 OpenCV 绘制不同几何图形 b. 你将会学习到这些函数: cv2.line(), cv2.circle(), cv2.rectangle(),cv2.ellipse(),cv2.putText() 等. 2.代码 上面所有的这些绘图函数需要设置下面这些参数: img:你想要绘制图形的那幅图像. color: 形状的颜色. 以 RGB 为例, 需要传入一个元组, 例如: (255,0,0)代表蓝色.对于灰度图只需要传入灰度值. thickness:线条的粗细.如果给一个