学习Opencv Chat3
- 基础结构体
CvPoint int x,y
CvPoint2D32f Float x,y;
CvSize Int width,height
CvRect int x,y,width,height
CvScalar double val[4] 这里为RGBA的值
- CvMat
typedef struct CvMat {
int type;
int step;
int* refcount; // for internal use only
union {
uchar* ptr;
short* s;
int* i;
float* fl;
double* db;
} data;
union {
int rows;
int height;
};
union {
int cols;
int width;
};
} CvMat;
float vals[] = [1,2,3,4];
cvCreateMat(5,5, CV_32FC1);
CvInitMatHeader {
&Mat, 2, 2, CV_32FC1, vals
}
*( (float*)CV_MAT_ELEM_PTR(*mat, 3, 2) ) = 7.7; // 赋值
cvmSet(mat, 2, 2, 0.5);
double cvGet(mat, 2,2);
- IplImage
// 对于指定区域进行色彩加强
int main(){
char input[] = "/Users/basasuya/Downloads/1.jpg";
IplImage* src = cvLoadImage(input);
int x,y,width,height,add;
scanf("%d %d %d %d %d",&x,&y,&width,&height,&add);
cvSetImageROI(src, cvRect(x,y,width,height));
cvAddS(src, cvScalar(add), src);
cvResetImageROI(src);
cvNamedWindow("Roi_Add", 1);
cvShowImage("Roi_Add", src);
cvWaitKey();
}
//另一种加强的方式
int main(){
char input[] = "/Users/basasuya/Downloads/1.jpg";
IplImage* src = cvLoadImage(input);
int x,y,width,height,add;
scanf("%d %d %d %d %d",&x,&y,&width,&height,&add);
// cvSetImageROI(src, cvRect(x,y,width,height));
IplImage* cha = cvCreateImageHeader(cvSize(width, height), src->depth, src->nChannels);
cha->origin = src->origin;
cha->widthStep = src->widthStep;
cha->imageData = src->imageData + y* src->widthStep + x* src->nChannels;
cvAddS(cha, cvScalar(add), cha);
cvReleaseImageHeader(&cha);
cvNamedWindow("Roi_add", CV_WINDOW_AUTOSIZE);
cvShowImage("Roi_add", src);
cvWaitKey();
return 0;
}
//将两个图片进行叠加
int main(){
char input1[] = "/Users/basasuya/Downloads/1.jpg";
char input2[] = "/Users/basasuya/Downloads/2.jpg";
IplImage* s1 = cvLoadImage(input1);
IplImage* s2 = cvLoadImage(input2);
int x,y,width,height;
double alpha, beta;
scanf("%d %d %lf %lf",&x,&y,&alpha,&beta);
width = s2->width; height = s2->height;
// cvSetImageROI(src, cvRect(x,y,width,height));
cvSetImageROI(s1, cvRect(x,y,width,height));
cvSetImageROI(s2, cvRect(0,0,width,height));
cvAddWeighted(s1, alpha, s2, beta, 0, s1);
cvResetImageROI(s1);
ShowImg(s1);
return 0;
}
学习Opencv Chat3的更多相关文章
- 学习opencv之路(一)
先看一下<学习opencv> 找几个demo 学会相机标定 我做的是单目相机的标定.
- [纯小白学习OpenCV系列]官方例程00:世界观与方法论
2015-11-11 ----------------------------------------------------------------------------------- 其实,写博 ...
- 《学习OpenCV》中求给定点位置公式
假设有10个三维的点,使用数组存放它们有四种常见的形式: ①一个二维数组,数组的类型是CV32FC1,有n行,3列(n×3) ②类似①,也可以用一个3行n列(3×n)的二维数组 ③④用一个n行1列(n ...
- 对人脑处理视觉的描述(摘《学习OpenCV(中文版)》)
人脑将视觉信号划分入很多个通道,将各种不同的信息输入你的大脑.你的大脑有一个关注系统,会根据任务识别出图像的重要部分,并做重点分析,而其他部分则分析得较少 .在人类视觉流中存在大量的反馈,但是目前我们 ...
- 《学习OpenCV》练习题第五章第二题abc
代码: #include <stdio.h> #include <opencv/highgui.h> #include <opencv/cv.h> #include ...
- 《学习OpenCV》练习题第五章第一题ab
这道题是载入一幅带有有趣纹理的图像并用不同的模板(窗口,核)大小做高斯模糊(高斯平滑),然后比较用5*5大小的窗口平滑图像两次和用11*11大小的窗口平滑图像一次是否接近相同. 先说下我的做法,a部分 ...
- 《学习OpenCV》练习题第四章第八题ab
这道题是利用OpenCV例子程序里自带的人脸检测程序,做点图像的复制操作以及alpha融合. 说明:人脸检测的程序我参照了网上现有的例子程序,没有用我用的OpenCV版本(2.4.5)的facedet ...
- 《学习OpenCV》练习题第四章第三题b
#include <highgui.h> #include <cv.h> #include "opencv_libs.h" /* *<学习OpenCV ...
- 《学习OpenCV》练习题第四章第三题a
#include <highgui.h> #include <cv.h> #include "opencv_libs.h" #pragma comment ...
随机推荐
- python基础 列表 的用法及介绍
列表 首先定义一个列表 声明列表 列表名字=[值1,值2] list=[1,2,3,4,5] 这是一个列表,列表中有五个元素(1,2,3,4,5) 显示list列表 print list 输出 ...
- vue 学习中 版本、问题集锦
看学习视频,因为年份比较早了,其实vue早已迭代到vue2.0了,遇到一些问题: v-for遍历数组,获取索引 注意:在2.0版是1~10中,$index已废除,索引 (item,index). 如下 ...
- CodeChef Sereja and Game [DP 概率 博弈论]
https://www.codechef.com/problems/SEAGM 题意: n个数(可能存在相同的数),双方轮流取数.如果在一方选取之后,所有已选取数字的GCD变为1,则此方输.问:1 若 ...
- 用 label 控制 Pod 的位置 - 每天5分钟玩转 Docker 容器技术(128)
默认配置下,Scheduler 会将 Pod 调度到所有可用的 Node.不过有些情况我们希望将 Pod 部署到指定的 Node,比如将有大量磁盘 I/O 的 Pod 部署到配置了 SSD 的 Nod ...
- SpringMVC之使用requestMapping映射请求、映射参数、映射头
1. 映射请求 作用:使用requestMapping可以指定处理器可以处理那些请求 地方:类和方法前面都可以 @requestMapping 类定义处: 提供初步的请求映射信息,相对于web应用的根 ...
- java中的@Override标签
@Override标签的作用: @Override是伪代码,表示方法重写. @Override标签的好处: 1.作为注释,帮助自己检查是否正确的复写了父类中已有的方法 2.便于别人理解代码 3.编译器 ...
- Python数据结构之一——list(列表)
Python版本:3.6.2 操作系统:Windows 作者:SmallWZQ Python包含6种常见的内建序列.它们分别是列表.元祖.字符串.Unicode字符串.buffer(memory ...
- [翻译]编写高性能 .NET 代码 第二章:垃圾回收 基本操作
返回目录 基本操作 垃圾回收的算法细节还在不断完善中,性能还会有进一步的提升.下文介绍的内容在不同的.NET版本里会略有不同,但大方向是不会有变动的. 在.net进程里会管理2个类型的内存堆:托管和非 ...
- P2P技术如何将实时视频直播带宽降低75%?
本文内容来自学霸君资深架构师袁荣喜的技术分享. 1.前言 实时视频直播经过去年的千播大战后已经成为互联网应用的标配技术,但直播平台的成本却一直居高不下,各个平台除了挖主播.挖网红以外,其背后高额的带宽 ...
- java 中对对象的调用
java程序设计语言对对象采用的不是引用的调用,实际上对象引用进行的是值得传递.(from:核心卷1 page:123)