精华内容
下载资源
问答
  • matlab获取ROI区域
    2021-04-17 10:37:27

    im 是 灰度图

    function [imR,imRR] = getROI(im,x,y,height,width)
    %you can use this function to get a ROI
    %and this x+width must smaller then your pic width.
    %im's model is gray  
    %imR is the oringal
    %imRR's model is gray
    imRR = im(x:x+width,y:y+height);
    imR = im;
    figure(54832);
    imshow(im);
    figure(54832);
    rectangle('Position',[x,y,width,height],'EdgeColor','R');
    
    更多相关内容
  • 在图像处理过程中,我们特别希望从图像中获取感兴趣区域ROI)的像素坐标信息,以便于进行后续的处理,或者与其它ROI进行对比分析。目前比较笨的方法就是自己使用MATLAB、C++或者Python语言进行编程后,再对图像...
    1. 前言
      在图像处理过程中,我们特别希望从图像中获取感兴趣区域(ROI)的像素坐标信息,以便于进行后续的处理,或者与其它ROI进行对比分析。目前比较笨的方法就是自己使用MATLAB、C++或者Python语言进行编程后,再对图像进行处理,但是可移植性和维护性都比较低,也不便于别人学习掌握。这里有一个强大的工具被忽略了,它就是ImageJ。
      ImageJ是一款基于 java的,由 National Institutes of Health(NIH)开发的一款功能强大的图像处理软件,在科研中应用极为广泛。最最关键的,这款软件是完完全全免费的!而且前人已经开发出了许许多多,针对不同需求的插件,可以直接安装调用。(具体安装参照链接)。

    2. 获取ROI区域
      打开图像
      在这里插入图片描述
      选择框选工具(这里选择了矩形工具)
      在这里插入图片描述
      选取图像中的ROI(左上角黄色选中区域)(
      点击 Analyze→Tools→Save XY coordinates
      在这里插入图片描述
      保存像素坐标数据文件

      在这里插入图片描述
      用Excel打开文件,可以提取想要的像素坐标数据了。

    3. Complete

    展开全文
  • Java应用OpenCV指南其四:OpenCV获取ROI区域、图像叠加 我们将在本篇文章了解OpenCV中感兴趣区域的获取方法,并进行简单的图象叠加操作,最后,将要初步了解矩阵的相关操作。一、 ROI区域选取 ROI(Region of ...

    我们将在本篇文章了解OpenCV中感兴趣区域的获取方法,并进行简单的图象叠加操作。

    一、 ROI区域选取
    ROI(Region of Interest)区域,被称为感兴趣区域,这个区域是图像分析所关注的焦点。我们通过设置感兴趣区域来选择我们图象分析的焦点,使得需要处理的图象区域大大减小,不但可以大大缩短处理的时间,而且可以提高处理的精度。OpenCV中常用到各种算子(Operator)和函数来求得感兴趣区域ROI,并进行图像的下一步处理。

    首先放一张要处理的图
    这里写图片描述

    定义ROI区域有两种方法。
    我们可以通过调用Rect方法定义ROI区域:

    Rect area=new Rect(int col, int row, int width, int height);

    这是一个矩形区域
    Col代表起始像素的列坐标(x轴坐标,从0开始计数,左上角为(0,0))
    Row代表起始像素的行坐标(y轴坐标)
    Width代表ROI区域的总长度(横轴)
    Height代表ROI区域的总高度(纵轴)

    然后获取区域内的图象:

    Mat img = new Mat(Mat orgimg, Rect area);
    

    另外,我们还可以通过调用Range方法选择ROI区域:

    Range area = new Range(int start, int end);

    这两个参数代表x或y某一个方向上的起始位置和结束位置,单位是像素。

    同样,再获取区域内图象:

    Mat img = new Mat(Mat orgimg, Range area1, Range area2);

    简单的介绍就到这里,现在让我们看一个演示的实例:

    package opencv;
    
    import org.opencv.core.*;
    import org.opencv.imgcodecs.Imgcodecs;
    
    public class one {
        static{System.loadLibrary(Core.NATIVE_LIBRARY_NAME);};  //用来调用OpenCV库文件,必须添加
    
        public static void main(String args[]){
            Mat anima = Imgcodecs.imread("F:/workspace/opencv/animation.jpg", Imgcodecs.IMREAD_UNCHANGED);  //获取原图
            Range range = new Range(250, 800);
            Rect rect = new Rect(804, 129, 874, 652);
            Mat ROI = new Mat(anima, rect);
            Mat ROI1 = new Mat(anima, range);
    
            Imgcodecs.imwrite("F:/workspace/opencv/anima_1.jpg", ROI);
            Imgcodecs.imwrite("F:/workspace/opencv/anima_2.jpg", ROI1);
        }
    }

    利用Rect函数截取的图象
    这里写图片描述

    利用Range函数截取的图象
    这里写图片描述

    二、 图象的线性混合
    在学会截取ROI区域以后,我们来用选取的图片进行一些初级的图象处理,这里介绍一下利用addWeighted函数实现的线性混合:

    void addWeighted(InputArray src1, double alpha, InputArray src2, double beta, double gamma, OutputArray dst, int dtype=-1);  
    

    • 第一个参数,InputArray类型的src1,表示需要加权的第一个数组,常常填一个Mat。
    • 第二个参数,alpha,表示第一个数组的权重或者说透明度。
    • 第三个参数,src2,表示第二个数组,它必须要和第一个数组拥有相同的尺寸和通道数。
    • 第四个参数,beta,表示第二个数组的权重。
    • 第五个参数,dst,输出的数组,它和输入的两个数组拥有相同的尺寸和通道数。
    • 第六个参数,gamma,一个加到权重总和上的标量值。看下面的式子自然会理解。
    • 第七个参数,dtype,输出阵列的可选深度,有默认值-1。;当两个输入数组具有相同的深度时,这个参数设置为-1(默认值),即等同于src1.depth()。

    这个函数基于下面的表达式:
    dst = src1[I]*alpha+ src2[I]*beta + gamma;

    dst即为混合后矩阵的输出值。其中的I,是多维数组元素的索引值。而且,在遇到多通道数组的时候,每个通道都需要独立地进行处理。另外需要注意的是,当输出数组的深度为CV_32S时,这个函数就不适用了,这时候就会内存溢出或者算出的结果压根不对。
    下面让我们看一个利用上面截取的图片进行混合的实例:

    package opencv;
    
    import org.opencv.core.*;
    import org.opencv.imgcodecs.Imgcodecs;
    
    public class one {
        static{System.loadLibrary(Core.NATIVE_LIBRARY_NAME);};  //用来调用OpenCV库文件,必须添加
    
        public static void main(String args[]){
            Mat anima = Imgcodecs.imread("F:/workspace/opencv/animation.jpg", Imgcodecs.IMREAD_UNCHANGED);  //获取原图
            Mat back = Imgcodecs.imread("F:/workspace/opencv/background.jpg", Imgcodecs.IMREAD_UNCHANGED);
    
            Range r = new Range(250, 800);
            Mat ROI1 = new Mat(anima, r);
            Range r1 = new Range(300, 850);
            Mat ROI3 = new Mat(back, r1);
            Mat mix = new Mat();
            double alpha = 0.75;  //设置的人物原图的权重(透明度)
            double beta;
            beta = 1.0-alpha;  //用来叠加的背景的权重
    
    Core.addWeighted(ROI1, alpha, ROI3, beta, 0, mix, -1);
    
            Imgcodecs.imwrite("F:/workspace/opencv/anima_4.jpg", mix);
        }
    }

    之前截取的图片:
    这里写图片描述

    混合后的图片:
    这里写图片描述

    展开全文
  • MFC工程中划定ROI区域

    2020-06-08 10:34:02
    MFC+OpenCV工程中划定感兴趣区域,进行下一步图像处理。更多介绍了解https://blog.csdn.net/kuisi95/article/details/106613006
  • opencv获取图像中的ROI区域

    千次阅读 2020-07-27 12:26:08
    Mat ROI = image(Rect(10, 10, 20, 20)); // 法二, 使用Range类, 先是行的范围,后是列的范围 Mat ROI2 = image(Range(10,30), Range(10, 30)); Python img = cv2.imread('', -1) # 行的范围, 列的范围, ...

    C++

        Mat image = imread("", -1);
        // 法一, 使用Rect类
        Mat ROI = image(Rect(10, 10, 20, 20));
        // 法二, 使用Range类, 先是行的范围,后是列的范围
        Mat ROI2 = image(Range(10,30), Range(10, 30));
    

    Python

    img = cv2.imread('', -1)
    # 行的范围, 列的范围, 通道的范围
    ROI = img[10: 30, 10: 30, :]
    
    展开全文
  • 上代码: import cv2 as cv2 img = cv2.imread('111.jpg') # 获取图像尺寸和通道...roi = img[0:int(rows/2), 0:int(cols/2)]#ROI区域是行 列的一半 cv2.imshow("", roi) cv2.waitKey() 原图: ROI显示 ...
  • 让你秒懂的ROI区域提取

    千次阅读 2021-04-29 22:18:34
    代码里面说的比较明白 思路很简单,就是选取多边形顶点,制作掩膜mask,然后用掩膜与图片做按位与操作,就可以得到ROI区域。 import numpy as np import cv2 as cv from matplotlib import pyplot as plt if __name_...
  • //两种在图中截取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)...
  • halcon软件提取ROI区域

    2018-07-18 17:54:15
    halcon软件是机器视觉图像处理函数库,资源便是通过halcon软件去提取ROI的源程序区域
  • 利用labview编译出简易的labview机器视觉的ROI关注区域的程序,比较简易适合初学者
  • #include <iostream> #include "opencv2/core/core.hpp" #include "opencv2/imgproc/imgproc.hpp" #include "opencv2/highgui/highgui.hpp" ...Mat roi;//ROI图像 Point cursor;//初始坐标 Rect rec.
  • 问题:  OpenCV 2中使用Mat图像数据进行ROI提取子图像的操作 代码: int main() { // Mat big = Mat::zeros (400, 600, CV_8U); if (!big.empty()) { Rect roi (150, 100, 300, 200); Mat s
  • 主要通过重写qlabel显示图像,并在图像上画出矩形框进行图片ROI区域的选取,主要用到了重新定义类、鼠标事件、图片显示函数。
  • 获取图像属性、兴趣ROI区域及通道处理发布时间:2018-08-29 10:05,浏览次数:1269, 标签:PythonROI该系列文章是讲解PythonOpenCV图像处理知识,前期主要讲解图像入门、OpenCV基础用法,中期讲解图像处理的各种算法...
  • 【利用OpenCV-Python在图像中选择ROI区域并提取ROI坐标信息】文前白话代码:效果: 文前白话 在图像中选定ROI区域进行进一步的功能开发,就需要提取到相应的ROI区域坐标,对于多边形ROI区域划定与坐标信息提取,...
  • 获取图像属性、兴趣ROI区域及通道处理一、获取图像属性二、获取感兴趣ROI区域三、通道处理1.通道拆分2.通道合并 实验环境: Anaconda+Sublime Text 3 在OpenCV中使用imread函数时,除了第一个参数外(第一个参数是...
  • 今天小编就为大家分享一篇Python+OpenCV感兴趣区域ROI提取方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • 获取图像属性 1.形状-shape 通过shape关键字获取图像的形状,返回包含行数、列数、通道数的元祖。其中灰度图像返回行数和列数,彩色图像返回行数、列数和通道数。如下图所示: # -- coding:utf-8 -- import cv2 ...
  • OpenCV-如何提取出图片ROI区域

    千次阅读 2020-04-30 20:35:22
    根据项目需要,提取视频中的ROI区域进行处理,对于无关区域可以屏蔽掉。主要原理是把原始帧中的ROI定位(如帧差法、背景减除法找出轮廓矩形)后复制到一个黑色背景中,再进行后续预处理。 这里只是以图片简单讲述...
  • # get the ROI ball = img[200:300, 200:300] img[300:400, 300:400] = ball # split bgr of the picture b, g, r = cv2.split(img) print(b) #img = cv2.merge(b,g,r) img[:, :, 1] = 0 cv2.imshow('img', img) ...
  • 如何快速获取图片的ROI区域坐标

    千次阅读 2017-09-19 08:56:29
    利用工具ps 打开ps工具,然后将图片打开,选择窗口->信息,或者直接按f8 可以对于红线部分的加号选择单位 这样将鼠标放在图片上某一点即可显示坐标信息 然后根据坐标信息可以对图片进行ROI区域的裁剪
  • C#关于imageBox中鼠标获取ROI区域

    千次阅读 2015-01-09 19:49:43
    C#中关于鼠标获取感兴趣区域方式,分享下 在Form1.cs中添加  private void imageBox1_MouseDown(object sender, MouseEventArgs e)  {  _x = e.X;  _y = e.Y;  isDragging = true;  
  • 本篇文章主要讲解Python调用OpenCV获取图像属性,截取感兴趣ROI区域,处理图像通道。
  • 一直使用的是OpenCV C++的接口,但是有些只能用纯c的环境下,就不得不用c接口了,IplImage是c接口图像数据最基本的数据结构,获取ROI区域的过程如下,首先通过cvSetImageROI(IplImage* src, CvRect rect)设定ROI...
  • 下面是ROI区域坐标提取代码讲解,这段代码利用鼠标事件可以在照片上或者是视频中截取的某帧图像上的图片进行划分。 导入库: import cv2 import numpy as np import joblib 建立空的列表,用于存放点坐标。 pts = []...
  • 1.本资源主要是基于python-opencv进行开发的,主要功能是用鼠标提取不规则的ROI以便进行后续处理。 2.https://blog.csdn.net/imwaters/article/details/80808491博文配套代码,整理了一些参考资料。代码基本是一样...
  • cv2.imread后返回的值是一个矩阵,而我需要全部像素的值,不需要矩阵排布所以:利用h, w, _ = img3.shape得到区域的长宽,也就是像素的行数和列数再用 for 循环,逐个打印for a inrange(h):for b inrange(w):print...
  • 感兴趣区域提取(ROI)matlab实现程序代码 图片的感兴趣区域的提取matlab实现 直接运行go函数即可运行 可视化操作
  • 1.获取图像属性 1.1获取图像形状 img.shape:灰度图像返回高、宽两个参数,彩色图像返回高、宽、通道数三个参数 读取彩色图片: # -*- coding:utf-8 -*- import cv2 #读取彩色图片 img = cv2.imread(r'C:\Users...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 10,670
精华内容 4,268
关键字:

获取roi区域

友情链接: Store-Management-System.rar