学习OpenCV(四)

泰凌微8258入门教程 环境篇④——开发板+烧录器 8258mesh新手套件购买 工欲善其事,必先利其器。 淘宝链接:https://item.taobao.com/item.htm? 阅读详情
/*
*功能:图像叠加操作
*
*/
#include "highgui.h"

int main()
{
	cv::Mat image1 , image2 ;
	cv::Mat result ;
	image1 = cv::imread("D:/Development/OpenCV/images/boldt.jpg") ;
	image2 = cv::imread("D:/Development/OpenCV/images/rain.jpg") ;

//图像叠加的几种方法
	cv::addWeighted(image1 , 0.9 , image2 , 0.7 , 0. , result) ;
	//cv::add(image1 , image2 , result) ;
	//cv::add(image1 , cv::Scalar(2) , result) ;
	//cv::scaleAdd(image1 , 0.9 , image2 , result) ;

	// if (mask[i]) c[i]= a[i]+b[i];
	//cv::add(image1 , image2 , result , mask );

//可以使用操作符重载
	//result = 0.9 * image1 + 0.7 * image2 ;

//还有其他的加减乘除,位运算,数学运算可以使用
	//cv::subtract(image1 , image2 , result) ; 

	//result.inv() ;
	//result.t() ;

	cv::namedWindow("Result") ;
	cv::imshow("Result" , result) ;

	cv::waitKey() ;
	return 0 ;
}



/*
*功能:按颜色平面分解图像,整合图像
*/
#include "highgui.h"

int main()
{
	cv::Mat image1 , image2 ;
	cv::Mat result ;
	image1 = cv::imread("D:/Development/OpenCV/images/boldt.jpg") ;
	image2 = cv::imread("D:/Development/OpenCV/images/rain.jpg" , 0) ;

	std::vector<cv::Mat> planes ;

	cv::split(image1 , planes) ;
	planes[0] += image2 ;
	cv::merge(planes , result) ;

	cv::namedWindow("Result") ;
	cv::imshow("Result" , result) ;

	cv::waitKey() ;
	return 0 ;
}


/*
*功能:定义图像的ROI区域
*
*/
#include "highgui.h"

int main()
{
	cv::Mat image1 , logo ;
	cv::Mat result ;
	image1 = cv::imread("D:/Development/OpenCV/images/boldt.jpg") ;
	logo   = cv::imread("D:/Development/OpenCV/images/logo.bmp") ;

	//定义ROI的几种方法
	//cv::Mat ROI = image1(cv::Rect(385 , 270 , logo.cols , logo.rows)) ;
	cv::Mat ROI = image1( cv::Range(270 , 270 + logo.rows) , 
		                  cv::Range(385 , 385 + logo.cols)) ;

	//在ROI区域添加图像的几种方法
	//cv::addWeighted(ROI , 1.0 , logo , 0.3 , 0. , ROI) ;
	cv::Mat mask = cv::imread("D:/Development/OpenCV/images/logo.bmp" , 0) ;
	logo.copyTo(ROI , mask) ;//仅当此处为1时才拷贝

	cv::namedWindow("Result") ;
	cv::imshow("Result" , image1) ;

	//得到一个图像的几行或几列
	cv::Mat rowCols ;
	//rowCols = image1.rowRange(0 , 100) ;
	rowCols = image1.colRange(0 , 100) ;
	cv::namedWindow("rowCols") ;
	cv::imshow("rowCols" , rowCols) ;

	cv::waitKey() ;
	return 0 ;
}

Freeswitch DTMF 按键无法接收问题修复 freeswitch 在接收到 update后,会更新成新的 payload type,但是给的200响应,仍然是旧的,这时候就会导致手机侧认识需要发送旧的payload,所以发到 fs 后就会导致直接丢包,不去处理RTP包了。呼叫时需要设置通道变量 rtp_manual_rtp_bugs=ACCEPT_ANY_PAYLOAD ,这时候FS 就不会对包的payload进行判断,直接判定通过。应该修复 freeswitch 给响应时,应该根据收到的 payload 发送给手机,但是一直未找到正确的路径。 阅读详情

相关推荐

MPC-CBF 控制原理详解

假设系统满足如下离散时间动力学模型xt1fxtutxt∈Xut∈Uxt1​fxt​ut​xt​∈Xut​∈Uxtx_txt​:状态变量,定义域为可行状态集X⊆RnX⊆Rnutu_tut​:控制输入,定义域为控制约束集U⊆RmU⊆Rm系统需满足安全约束,由如下控制障碍函数(CBF)hX→RhX→RCx∈X∣hx≥0C:=x∈X∣hx≥。

m0_54691290的博客 1184

opencv Mat 像素操作

1 cv::Mat     cv::Mat是一个n维矩阵类,声明在&lt;opencv2/core/core.hpp&gt;中。   class CV_EXPORTS Mat { public: //a lot of methods … /*! includes several bit-fields: - the magic signatur...

weixin_34341229的博客 226

量子密钥分发系统设计与实现(一):系统基本架构讨论

本文主要对量子密钥分发系统中的基础架构和基于系统的量子密钥协商过程进行了初步讨论,为后期系列文章进行铺垫。

量子领域相关话题 3899

std::vector型转cv::Mat型矩阵

在opencv中Mat类的构造函数中有一个构造函数可以直接把vector类转换为Mat类。 如下所示: std::vector&lt;cv::Point2f&gt; points; cv::Mat image(points);  //image为一个points.size()行,2列的Mat型矩阵   (32FC1) 或者这样写: std::vector&lt;cv::Point2f...

Young_Fan 6371

飞塔防火墙之Link Monitor

Link Monitor类似于SLA,飞塔防火墙线路质量探测的一个功能。

weixin_41903258的博客 2410

PLS-PM with R 偏最小二乘路径建模 (R语言)

1. 引入 1.1. 安装plspm包 plspm 是一个用于执行偏最小二乘路径建模分析的 r 程序包。 在 CRAN 上可以免费下载: Http://cran.r-project.org/web/packages/plspm/index.html. 此后,通过以下代码在r中安装并加载该程序包即可。 install.packages("plspm") library("plspm") 2. 一些简单概念 2.1. 潜变量和观测变量 不少变量如满意度、成功指数是无法通过观测得到

Wowlittlemoon的博客 1万+

使用 opencv 做阈值化操作

#include <opencv2/opencv.hpp> #include <iostream> using namespace std; void sum_rgb(const cv::Mat& src, cv::Mat& dst) { //split image into the color planes vector<cv:...

柯拉的博客 225

chromium通信系统-ipcz系统(二)-ipcz系统代码实现-同Node通信

在chromium通信系统-mojo系统(一)-ipcz系统基本概念一文中我们介绍了ipcz的基本概念。 本章我们来通过代码分析它的实现。 handle系统 为了不对上层api暴露太多细节,实现解耦,也方便于传输,ipcz系统使用handle表示一个对象,handle类似于文件描述符,用IpczHandle类型表示ipcz系统内的一个对象。一个可以用IpczHandle 句柄表示的对象必须是APIObject子类。APIObject数据结构如下 class APIObject : public RefCou

woai110120130的专栏 1775

opencv学习四

core模块的第二个部分就是OpenCV如何扫描图像、利用查找表和计时: 1、建立查找表 颜色缩减方法:如果矩阵元素存储的是单通道像素,使用C或C++的无符号字符类型,那么像素可有256个不同值。但若是三通道图像,这种存储格式的颜色数就太多了(确切地说,有一千六百多万种)。用如此之多的颜色可能会对我们的算法性能造成严重影响。其实有时候,仅用这些颜色的一小部分,就足以达到同样效果。所以其

深藏功与名 2078

【嵌入式DIY实例-ESP32篇】-热成像仪

在本文中,我们将使用 MLX90640 热像仪和 1.8 英寸 ST7735 TFT 显示屏,构建一款基于 ESP32 的高性能紧凑型热像仪。本项目旨在打造一款便携、响应迅速的热像仪,具有增强的图像质量、优化的帧率和精准的温度读数。

视觉与物联智能 881

Python爬虫实战:实时监控美国SEC官网文件更新,助你第一时间掌握市场动态

在资本市场中,信息就是财富。美国证券交易委员会(SEC)官网公开了大量公司披露文件,涵盖财报、招股说明书、内幕交易等重要信息。对投资者、分析师及法律合规人员来说,实时监控这些公开文件具有重要价值。

2201_76125261的博客 595

【OpenCV】Mango的OpenCV学习笔记【四】

本文主要参考自 OpenCV官方文档 一、Canny边缘检测 Canny边缘检测 算法步骤: 彩色图转化为灰度图 应用高斯滤波来平滑图像 --> 去除噪声 由于边缘检测容易受到图像中噪声的影响 找寻图像的强度梯度 Canny的基本思想是找寻一幅图像中强度变化最强的位置。所谓的变化最强,即指梯度方向。 平滑后的图像中每个像素点的梯度可以由 Sobel算子 来获得: 1)首先,利用 Sobel算子 得到沿 x轴 和 y轴 方向的梯度 G_x 和 G_y。 2)由 G_X 和 G_Y 便可计.

MangoloD的博客 456

杰理SDK入门教程(一):SDK的四种编译方式的使用

杰理SDK提供了四种主要编译方式:1) JL Studio官方IDE,适合初学者;2) VS Code轻量级编辑器,需在SDK根目录打开;3) 命令行/脚本编译,灵活支持自动化;4) Code::Blocks开源IDE。每种方式都有详细操作指南,开发者可根据需求选择,初学者推荐从JL Studio开始熟悉编译流程。环境配置注意事项和编译成功标识均有明确说明,确保开发效率。

qq_42014563的博客 1153

Opencv学习笔记(四)

一、如何实现单窗口显示多个图片 1、在开始可以先创建一张空白的图片。 2、imread读入一张图片 3、创建一个临时的Mat对象用来设定裁剪的区域,这个临时的对象使用第一步骤创建的Mat对象进行初始化。设定图片放置的区域使用rect函数设定初始化的坐标长宽。 4、再使用resize调整2步骤中的图片放缩大学输出到3步骤中的temp中。 代码如下: Mat scrImage(700,700,CV_8UC3,Scalar(0,0,0)); Mat img=imread("../test.png")

主要学习关于图像处理和SLAM领域 1763

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

贝叶斯统计 [韦来生编]

贝叶斯(Bayes)统计是近几十年来迅速发展起来的数理统计的一个重要分支。贝叶斯方法与经典统计方法的主要不同之处是进行统计推断时除了利用样本信息外,还要利用参数的先验信息,因此可以提高统计推断或统计决策的效果。它在经济、金融、生物、医学、自然科学和社会科学等许多领域具有广泛的应用。贝叶斯方法的研究已渗透到了统计学的几乎所有领域。作者在给中国科学技术大学概率论与数理统计专业本科生开设的“数理统计”课程中有一章专门讲授“贝叶斯方法和统计决策理论”,近十年来也给中国科学技术大学概率统计专业研究生开设过几次“贝叶斯分析”课。本书是在对过去讲稿的内容作了适当的增减和调整的基础上完成的。  本书共分六章。第1章是绪论,介绍了贝叶斯统计的若干基本概念,同时对必要的数理统计的基础知识有重点地作了回顾。第二章介绍了确定先验分布的若干可供选择的方法。第三章介绍了几类常见统计模型参数的后验分布的主要结果和计算方法。第四章和第五章分别介绍了“贝叶斯统计推断”和“贝叶斯统计决策”的内容。第六章介绍了贝叶斯统计计算的若干方法,包括蒙特卡洛方法和马尔可夫链蒙特卡洛(MCMC)方法以及相关统计软件的简介。本书的每一章附右大量的例题和习题,书末附有常用的几个表格和部分习题解答供读者查用。  大约可在54学时内讲授本书的第1章至第六章的主要内容,教师可根据学时需要选讲本书第1章至第六章的部分内容。书中标“*”号的章节可略去不讲,留给读者作为阅读材料。第六章例题中的R代码和部分例题的数据文件等可从作者个人主页下载。  作者在编写本书的过程中参考了J.O.Berger教授的《统计决策论及贝叶斯分析》和茆诗松教授编写的《贝叶斯统计》等书中的一些内容,以及《贝叶斯分析》一书中由张伟平博士编写的有关贝叶斯统计计算的一些内容。在此表示衷心感谢。  本书编写准备过程中,中国科学技术大学统计与金融系的几个研究生帮助完成了本书部分中文的录入和排版,作者对他们的辛勤工作表示真诚的感谢。高等教育出版社为本书的出版给予了大力支持。在此一并致谢。

opencv 椭圆拟合_OpenCV学习记录四

一、图像特征1、Harris角点检测数学原理如下其中,w(u,v)是权重。为了化简,先泰勒展开近似化简把矩阵对角化成为只有特征值x1,x2。当x1、x2都比较大时,则椭圆也比较大。R=x1x2-a*(x1+x2)当R>0时,为角点,R≈0时,为平坦区;R<0时,为边界点。算法实现img=cv2.imread('chessboard.jpg') print('imgage.shape',...

weixin_39915694的博客 268

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

【OpenCV学习】(四)图形绘制

【OpenCV学习】(四)图形绘制 背景 使用OpenCV进行图形绘制是一种必备的技能,在图像的任务中,不管是图像检测还是图像识别,我们都需要通过绘制图形和绘制文字对处理的结果进行说明,本篇就详细介绍下图形的绘制; 一、画线 line(图像,起始点,终点,颜色,线宽,线形):一般只需要前面四个参数即可; 代码案例: cv2.line(img, (20, 100), (20, 500), (0,0,255)) 画出了一条Y方向上的红色线段; 二、画矩形 这个相对来说是应用最多的一种方法了,往往在检测项目中返

weixin_40620310的博客 2349

OpenCV学习笔记四-image的一些整体操作

title: OpenCV学习笔记四-image的一些整体操作 categories: 编程 date: 2019-08-08 12:50:47 tags: OpenCV image的一些操作 s////P4 image的一些整体操作 #include<iostream> #include<opencv2/opencv.hpp> using namespace std...

weixin_42376458的博客 558

Opencv学习四之视频读取

1.opencv可以通过下面这个(cv2.VideoCapture)参数来读取视频文件,读取视频文件直接指定视频的路径就行,也可以用来捕获摄像头,用数字来控制不同的设备。示例如下: import cv2 #opencv读取的格式是BGR import matplotlib.pyplot as plt import numpy as np ​ #这个是直接读取视频文件 vc = cv2.VideoCapture('test.mp4') 2.读取一个视频,并转换没一帧图像为灰度图并以视频方式展示。 i

weixin_41869644的博客 1097

OpenCv3编程学习四

前半部分的内容: 1.安装cmake和生成opencv源代码 配置过程参考了这个:https://blog.youkuaiyun.com/rannar/article/details/86760682 2.还知道了opencv.hpp已经包含了opencv各个模块的头文件。 3.还知道了opencv对应的命名规范 4.以及argc与argv的差别: 5.imread函数,有两个参数:第一个参数是filename,可以有很多种图片类型,第二个参数是int类型的flag也就是指定加载图像的颜色类型,0代表是灰色,1代表是

wzw的博客 282

opencv学习笔记(四)

opencv学习笔记(四) 本节主要了解一下opencv中的边缘检测。 Canny边缘检测 使用高斯滤波器,平滑图像,去噪声,高斯滤波器作用 传送门 计算图像中每一个像素点的梯度以及方向1,计算方式传送门 应用非极大值(Non-Maximum Suppression)抑制2,消除边缘检测带来的杂散效应 应用双阈值(Double-Threshold)3检测确定真实的边界。 通过抑制孤立的弱边缘点最...

weixin_41979347的博客 403

opencv学习之路【四】——opencv文件结构介绍

这里要感谢这篇博主的文章 部分内容转载自此 opencv在2.3版本之前 都是用的c语言实现的 而在2.3以后的版本 做了很多重大的改变 其中最主要的是用c++重写大部分结构 然后文件的结构和2.0之前的也有很多不同 然后对库的结构进行了合理的规划拆分 core——定义了基本数据结构,包括最重要的Mat和一些其他的模块 imgproc——该模块包括了线性和非线性的图像滤波

pwh0996的专栏 2179

OpenCV-Python学习 <四> 阈值处理

图像处理时,常常需要将图片二值化。以某个点为区分点,大于它的为一个值,小于它的赋另一个值。 opencv提供了cv.threshold(),处理阈值,并生成阈值处理后的结果。 cv2.threshold()可以产生二值化的结果,也可以产生其它结果。 retval, dst = cv2.threshold(src, thresh, maxval, type) retval: 代表返回的阈值,也就是此次阈值处理所用的阈值。 dst: 代表阈值分割结果图,与原始图src有相同的大小和类型。 sr

New_Tank的博客 3906

【opencv学习之四】opencv调取本地摄像头

从博客上看到opencv如何调取摄像头,例程代码跑了一下,效果可以,下面是代码,Qt配置opencv和之前介绍的一样,pro中添加opencv路径,include时候包含头文件名字就OK。 我是加在mainWindow下调用的,只要调用就可以,下面是代码: #include "mainwindow.h" #include "ui_mainwindow.h" #include "cv.h" #i

abcvincent的博客 5616

OpenCV学习之路(四) OpenCV 中的几种数据结构

官方文档 OpenCV数组或矩阵的操作函数 通常我们在屏幕上看到的图像在转化到数字设备中时,记录的往往是图像中的每个点的数值(像素),即以像素点矩阵的形式进行存储。OpenCV 作为一个计算机视觉库,其主要的工作是处理和操作并进一步了解这些形式和信息,因此理解 OpenCV 是如何存储和处理图像是非常有必要的。 Mat 结构的使用 对于 OpenCV1.X 时代的基于 C 语言接口而建的图...

菜鸡程序猿的博客 1078
上一篇: 学习OpenCV(三)
下一篇: VS2012中MFC使用Picture Control显示OpenCV处理的图像
知行且执行
博客等级 码龄14年 38粉丝 73原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值