OpenCV7-copyTo截取ROI

2023-10-13 04:01
文章标签 截取 opencv7 roi copyto

本文主要是介绍OpenCV7-copyTo截取ROI,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

OpenCV7-copyTo截取ROI

    • copyTo截取感兴趣区域


copyTo截取感兴趣区域

有时候,我们只对一幅图像中的部分区域感兴趣,而原图像又十分大,如果带着非感兴趣区域一次处理,就会对程序的内存造成负担,因此我们希望从原始图像中截取部分图像后再进行处理。我们将这个区域称作感兴趣区域(Region of Interest,ROI)。

从原图中截取部分内容,可以用Rect数据结构标记,也可以用Range数据结构标记:

typedef Rect2i Rect;
typedef Rect_<int> Rect2i;template<typename _Tp> class Rect_
{
public:// ..._Tp x; //!< x coordinate of the top-left corner_Tp y; //!< y coordinate of the top-left corner_Tp width; //!< width of the rectangle_Tp height; //!< height of the rectangle
};
img(Rect(p.x, p.y, width, height))
class CV_EXPORTS Range
{
public:Range();Range(int _start, int _end);int size() const;bool empty() const;static Range all();int start, end;
};
// 定义开始和结束范围,可以是行的开始和结束范围,也可以是列的开始和结束范围
img(Range(rows_start, rows_end), Range(cols_start, cols_end));

深拷贝函数copyTo:

void cv::Mat::copyTo( OutputArray m ) const;void cv::Mat::copyTo( OutputArray m, InputArray mask ) const;void cv::copyTo(InputArray src, OutputArray dst, InputArray mask);
#include <opencv2\opencv.hpp>
#include <opencv2/core/utils/logger.hpp> // debug no log
#include <iostream>
using namespace cv;
using namespace std;int main()
{cout << "OpenCV Version: " << CV_VERSION << endl;utils::logging::setLogLevel(utils::logging::LOG_LEVEL_SILENT);Mat img = imread("lena.png");Mat noobcv = imread("noobcv.jpg");if (img.empty() || noobcv.empty()){cout << "请确认图像文件名称是否正确" << endl;return -1;}Mat ROI1, ROI2, ROI2_copy, mask, img2, img_copy, img_copy2;resize(noobcv, mask, Size(200, 200));img2 = img;  //浅拷贝//深拷贝的两种方式img.copyTo(img_copy2);copyTo(img, img_copy, img);//两种在图中截取ROI区域的方式Rect rect(206, 206, 200, 200);  //定义ROI区域ROI1 = img(rect);  //截图ROI2 = img(Range(300, 500), Range(300, 500));  //第二种截图方式img(Range(300, 500), Range(300, 500)).copyTo(ROI2_copy);  //深拷贝mask.copyTo(ROI1);  //在图像中加入部分图像imshow("加入noobcv后图像", img);imshow("ROI对ROI2的影响", ROI2);imshow("深拷贝的ROI2_copy", ROI2_copy);circle(img, Point(300, 300), 20, Scalar(0, 0, 255), -1);  //绘制一个圆形imshow("浅拷贝的img2", img2);imshow("深拷贝的img_copy", img_copy);imshow("深拷贝的img_copy2", img_copy2);imshow("画圆对ROI1的影响", ROI1);waitKey(0);return 0;
}

这篇关于OpenCV7-copyTo截取ROI的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/200631

相关文章

sql语句字段截取方法

《sql语句字段截取方法》在MySQL中,使用SUBSTRING函数可以实现字段截取,下面给大家分享sql语句字段截取方法,感兴趣的朋友一起看看吧... 目录sql语句字段截取sql 截取表中指定字段sql语句字段截取1、在mysql中,使用SUBSTRING函数可以实现字段截取。例如,要截取一个字符串字

MySQL 字符串截取函数及用法详解

《MySQL字符串截取函数及用法详解》在MySQL中,字符串截取是常见的操作,主要用于从字符串中提取特定部分,MySQL提供了多种函数来实现这一功能,包括LEFT()、RIGHT()、SUBST... 目录mysql 字符串截取函数详解RIGHT(str, length):从右侧截取指定长度的字符SUBST

Java实现按字节长度截取字符串

《Java实现按字节长度截取字符串》在Java中,由于字符串可能包含多字节字符,直接按字节长度截取可能会导致乱码或截取不准确的问题,下面我们就来看看几种按字节长度截取字符串的方法吧... 目录方法一:使用String的getBytes方法方法二:指定字符编码处理方法三:更精确的字符编码处理使用示例注意事项方

【语句】如何将列表拼接成字符串并截取20个字符后面的

base_info = "".join(tree.xpath('/html/head/script[4]/text()'))[20:] 以下是对这个语句的详细讲解: tree.xpath('/html/head/script[4]/text()')部分: tree:通常是一个已经构建好的 HTML 文档树对象,它是通过相关的 HTML 解析库(比如 lxml)对 HTML 文档进行解

怎么截取app崩溃日志

1.配置adb工具说明                   2.配置完成的检测     3.App崩溃的时候,截取错误日志。

openCV ROI

#include "opencv2/core.hpp"#include "opencv2/imgproc.hpp"#include "opencv2/highgui.hpp"#include "opencv2/videoio.hpp"#include <iostream>using namespace std;using namespace cv;//仅最大化HSV图像S和 V部分vo

shell 之 脚本变量和字符串截取

脚本变量: $$   Shell本身的PID(ProcessID) $!    Shell最后运行的后台Process的PID $?    最后运行的命令的结束代码(返回值) $-    使用Set命令设定的Flag一览 $*    所有参数列表。如"$*"用「"」括起来的情况、以"$1 $2 … $n"的形式输出所有参数。 $@  所有参数列表。如"$@"用「"」括起来的情况、以"$1" "$

linux字符截取

用一个例子: 示例字符为 url = www.google.com 1, echo ${url%.*}      %表示移除.*所匹配最右边的字符 输出:www.google 2,  echo ${url%%.*}    %%从右边开始一直移除.*所匹配最大化的字符(属贪婪匹配)  输出:www  3,  echo ${url#*.}     #移除*.

截取pdf中的部分内容,又保证内容不失真,实现方式

文章目录 0.为什么需要截取pdf1.访问网站2.上传你需要截取的pdf文件3.选取区域下载 0.为什么需要截取pdf 如果直接截图工具截图的话,里面的文字和图片内容会出现失真的情况,但是我们希望pdf空白部分的内容不要,这个时候就需要截取pdf工具 1.访问网站 进入网站截取pdf文件的内容 2.上传你需要截取的pdf文件 3.选取区域 下载

R6010 OpenCV copyTo函数使用时所遇到错误

环境:vs2013 opencv2.4 目的:将ROI存储在一个临时变量中,简化图像的大小,方便后续的处理。 所遇到错误:使用src.copyTo(dist(rect))时候(rect表示兴趣区域),程序总是崩溃,【rect大小 保证在图像区域内部】 解决方案:img(rect).copyTo(f_face),虽然还没有弄懂原理,但是遇到同样错误的朋友可以参考。 注:该拷贝方式是浅拷贝,引