OpenCV 实现读取USB摄像头数据,并旋转90度显示_opencv设置摄像头方向_不解不惑的博客-程序员秘密

技术标签: OpenCV  

实现图像的选装的方法有很多,如果是旋转90,180,270度这种,没必要采用透视变换之类的运算,采用矩阵转置之列的就好,当然也可以采用挨个像素的搬运,那样的话,需要更长的时间调试代码,属于细节的问题,产品落地的时候才有必要关心。

#include <iostream>

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

using namespace std;
using namespace cv;

//int main()
//{
//	Mat img = imread("D:\\3.BMP");
//
//	namedWindow("raw");
//	imshow("raw",img);
//	waitKey(0);
//
//	return 0;
//}

int main()
{
	VideoCapture cap;

	cap.open(0);

	if (!cap.isOpened())
	{
		std::cerr << "Could not openc capture." << std::endl;
		return -1;
	}


	cv::Mat frame;
	int key;

	//cap.set(CV_CAP_PROP_FRAME_WIDTH, 800);
	//cap.set(CV_CAP_PROP_FRAME_HEIGHT, 600);
	cap.set(CV_CAP_PROP_FRAME_WIDTH, 1920);
	cap.set(CV_CAP_PROP_FRAME_HEIGHT, 1080);

	for (;;)
	{
		cap >> frame;
		if (frame.empty()) break;

		cv::transpose(frame, frame);
		cv::flip(frame, frame, 0);

		key  = waitKey(100);

		if (32 == key)
		{
			imwrite("D:\\img.jpg", frame);
		}

		if (27 == key)
		{
			cap.release();
			break;
		}


		resize(frame, frame, Size(960 * 1080 / 1920, 960));
		cv::imshow("raw", frame);

	}

	return 0;
}

 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_24815615/article/details/103568572

智能推荐

ResultSet遍历过程中修改自身数据,不会改变循环的过程_???Sir的博客-程序员秘密

ResultSet遍历过程中修改自身数据,不会改变循环的过程;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;public class TestTbl { public static void main(String[] args) thr...

NR_OPEN 与 NR_FILE 的区别_weixin_34064653的博客-程序员秘密

NR_OPEN 与 NR_FILE 的区别 阅读0.11版的内核源码时,在linux-0.11/fs/pipe.c中,函数sys_pipe()里面出现了2个宏定义,NR_OPEN 与 NR_FILE。下面说明一下它们的区别: 1. NR_OPEN is the maximum number of files that can be opened by process。 NR_OPEN是一个进...

【ZT】linux Gsensor驱动(bma250为例子)_南棱笑笑生的博客-程序员秘密

http://blog.csdn.net/luobin1984/article/details/8137336重力感应器BMA250源代码执行分析http://blog.csdn.net/laohuang1122/article/details/8773517linux Gsensor驱动(bma250为例子)http://blog.sina.com.cn/s/blog_89f592f501013

linux内核线程freezing,Linux内存管理 (13)回收页面_薇陌念的博客-程序员秘密

关键词:LRU、活跃/不活跃-文件缓存/匿名页面、Refault Distance。node页面回收、或者回收页面也即page reclaim,依赖于LRU链表对页面进行分类:不活跃匿名页面、活跃匿名页面、不活跃文件缓存页面、活跃文件缓存页面和不可回收页面。算法内存紧张时优先换出文件缓存页面,而后才是匿名页面。由于文件缓存页面有后备存储器,而匿名页面必需要写入交换分区。缓存因此回收页面的三种机制(...

HDU 1753 大明A+B_Silenceneo的博客-程序员秘密

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1753大明A+BTime Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 11576    Accepted Submis

glew和glfw区别_glew glfw_海涛高软的博客-程序员秘密

glew.h不同的显卡公司,也会发布一些只有自家显卡才支 持的扩展函数,你要想用这数涵数,不得不去寻找最新的glext.h,有了GLEW扩展库,你就再也不用为找不到函数的接口而烦恼,因为GLEW能自动识别你的平台所支持的全部OpenGL高级扩展函数。也就是说,只要包含一个glew.h头文件,你就能使用gl,glu,glext,wgl,glx的全部函数。glfw.h一个轻量级的,开源的...

随便推点

WHERE 和 ON 的区别_where和on_Nyanko-sensei的博客-程序员秘密

WHERE 和 ON 的区别 在使用sql语句连接操作时,关联两个表或者多个表来返回查询结果时数据库会返回一个临时表给用户,比如LEFT JOIN WHERE 和 ON都是过滤条件,区别在于: ON条件是在生成临时表时的过滤条件,不管ON的条件是否为真都会返回左表数据。 WHERE条件是在临时表生成完成以后对临时表进行数据过滤,此时就不一定会返回左表全部数据,而是经过WHERE条件筛选以后的数据。...

卷积神经网络中各模块的作用_han_mj的博客-程序员秘密

本文主要讨论了在卷积神经网络中全连接层、卷积层、激活函数层、批归一层、dropout层的使用方法、注意点和作用

Angular学习(三)【指令生命周期,路由跳转】_ngonchange用法_风神修罗使的博客-程序员秘密

指令的生命周期指令与组件的基本结构非常相似,差别在于组件中包含了模板。组件的部分生命周期方法与指令的相同,下面来看一下:ngOnInitngOnInit 钩子在 Angular 完成初始化输入属性的数据绑定后,初始化指令。ngOnChangengOnChange 在 Angular 初始化输入属性的数据绑定前响应一次,之后当检测到数据绑定发生变化就会被调用,这个方法接受一个包含当前和之前数据的 SimpleChange 对象。ngDoCheckngDoCheck 方法用于检测变化,该钩子方法会

JAVA String的split方法小结_国强余富的博客-程序员秘密

1.split(String regex) 本质上就是limit为0时的情况,详见JDK源代码:public String[] split(String regex) { return split(regex, 0);}2.split(String regex, int limit)参数说明:regex 表示字符串分割的模式,包括分隔符和正则表达式;limit 表示控制模式应用的次数,会影响所得数组的长度。limit&gt;0:模式将被最多应用 n - 1 次,数组的长

Golang学习之路—map切片_golang map拆分_Casey321的博客-程序员秘密

map切片基本介绍案例演示基本介绍切片的数据类型如果是map,则我们称为slice of map,map切片,这样使用则map个数就可以动态变化了。案例演示要求:使用一个map来记录学生的信息name和age,即一个学生对应一个map,并且学生的个数可以动态的增加。package mainimport( "fmt")func main(){ var stu []map[string]string stu = make([]map[string]string, 1) //增

linux c——dup( )和dup2( )函数详解_灿烂的人生的博客-程序员秘密

dup用来复制参数oldfd所指的文件描述符。当复制成功是,返回最小的尚未被使用过的文件描述符(用语言描述可能不太清晰,以下面程序为例)#include&lt;stdio.h&gt;#include&lt;sys/stat.h&gt;#include&lt;fcntl.h&gt;#include&lt;unistd.h&gt;/*已知0,1,2分别代表标准输入,标准输出,标准错误三个已经被系统占用。*/int main(int argc, char* argv[]){ int f