引言 在利用OpenCV对图像进行处理时,通常会遇到一个情况,就是只需要对部分感兴趣区域进行处理.因此,如何选取感兴趣区域呢?(其实就是"抠图"). 在学习opencv的掩码运算后,尝试实现一个类似halcon的reduce_domain功能,对于实现抠图的过程中,需要掌握的要点就是位运算符和copyTo函数 位运算符的相关API: void bitwise_and(InputArray src1, InputArray src2, OutputArray dst); //dst =…
addWeighted //显示原图 Mat src = imread("data/img/1.jpg"); imshow("src",src); //显示logo Mat logo = imread("data/img/name.jpg"); imshow("logo",logo); //获取ROI Mat ROI = src(Rect(,,logo.cols,logo.rows));//仅仅是获取ROI,依然是src中的一…
在图像处理领域,有一个非常重要的名词ROI. 什么是ROI? 它的英文全称是Region Of Interest,对应的中文解释就是感兴趣区域. 感兴趣区域,就是我们从图像中选择一个图像区域,这个区域就是图像分析所关注的焦点.我们圈定这个区域,那么我们要处理的图像就从大图像变为一个小图像区域了,这样以便进行进一步处理,可以大大减小处理时间. 定义ROI区域有两种方法: 第一种,指定矩形的坐标,并且规定好他的长宽. Mat img = imread("1.jpg"); Mat roi =…
感兴趣区域:ROI 对感兴趣区域进行的一系列操作,相当于直接在原图相应部分进行操作. Mat imageROI = srcImage(Rect(0,0,dstImage.cols, dstImage.rows)); srcImage 为原图像 Rect(0,0,dstImage.cols, dstImage.rows) 在原图像上寻一片矩形区域,左上角坐标为(0,0),长为 dstImage.cols,宽为 dstImage.rows src.copyTo(dst, mask) 或 src.co…
前面说了一堆,也不知道啥用,感觉也没说清楚,可能确实需要一些例子来显性表示一下,或者他们在当初出版书籍针对的人群已经有了对图像的基本认识,然而自己还是没有建立起来,往后看看吧,希望能比较清楚的自己处理一些图像,知道一些如是能对某个像素的某个通道的值进行改变那么很多问题就变得简单,我想,开始的例子应该也是这里,但是没有所见即所得的即触感,感觉……很生硬. 例3-12这个例子也很坑, 所以自己简单整理了一下. 要输入7个参数.这个对于c c++的要求还是比较高的.atoi函数也比较高级.所以能不能继…
11     绘制直线的line函数 DrawLine(Mat img, Pont start, Point end); 绘制椭圆的ellipse函数 DrawEllipse(Mat img, double angle) 其中angle为椭圆旋转角度 绘制矩形的rectangle函数 DrawRectangle 绘制原的circle函数 DrawFilledCircle(Mat img, Point center) 绘制填充的多边形的fillpoly函数 DrawPolygon(Mat img)…
内容提要 如果一幅图中只有一小部分图像你感兴趣(你想研究的部分),那么截图工具就可以了,但是如果你想知道这个区域在原图像中的坐标位置呢? 这可是截图工具所办不到的,前段时间我就需要这个功能,于是将其用Matlab实现. 其实只要用到Matlab中的两个函数: 函数: imrect 函数: getPosition 如果要截取其中的部分图像,就离不开下面的函数: 函数: imcrop 代码实现 clc; clear; close all; %-----------------------------…
在以前介绍IplImage结构的时候,有一个重要的参数——ROI.ROI全称是”Region Of Interest”,即感兴趣的区域.实际上,它是IPL/IPP(这两个是Inter的库)结构IplROI的实例.IplROI包含xOffset.yOffset.height.width和coi成员变量.其中COI代表channel of interest(感兴趣的通道).ROI的思想是:一旦设定ROI,通常组用于整幅图像的函数便只会对ROI所表示的子图像进行操作.如果COI被设置非0值,则对该图像…
作为小码农,本人最近想对一段视频的某个区域进行处理,因此要将该段视频区域裁剪出来,搜搜网上,发现没有痕迹,是故自己琢磨一下,左右借鉴,编了如下代码,目标得以实现,希望对你有用. #include "stdafx.h" #include "opencv2/opencv.hpp" #include <iostream> #include <vector> using namespace std; using namespace cv; int m…
基于OpenCV实现图片及视频中选定区域颜色识别 近期,需要实现检测摄像头中指定坐标区域内的主体颜色,通过查阅大量相关的内容,最终实现代码及效果如下,具体的实现步骤在代码中都详细注释,代码还可以进一步优化,但提升有限. 主要实现过程:按不同颜色的取值范围,对图像进行循环遍历,转换为灰度图,将本次遍历的颜色像素转换为白色,对白色部分进行膨胀处理,使其更加连续,计算白色部分外轮廓包围的面积累加求和,比较每种颜色围起来面积,保存最大值及其颜色,所有颜色遍历完后,返回最大值对应的颜色,显示在图像上 如果…