精华内容
下载资源
问答
  • matlab获取ROI区域

    2021-04-17 10:37:27
    %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

    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');
    
    展开全文
  • 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);
        }
    }

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

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

    展开全文
  • 对于推广,我们需要做到精准推广,通过时间段,区域,人群,价格去定向,通过测算每天每个时段的ROI以环比和同比的数据,进行精准投放。每隔15分钟左右观察一次推广曝光情况,进行调价策,观察...

    外卖做的好,离不开推广用的好,将每一分钱都花到刀刃上,用最少的钱获得最大的曝光,是每一个优秀的外卖运营者的目标。经手的门店多了,见过太多的商家要么对于不知道怎么推广,要么直接固定一个很高的价格,每天多花好几百冤枉钱。对于推广,我们需要做到精准推广,通过时间段,区域,人群,价格去定向,通过测算每天每个时段的ROI以环比和同比的数据,进行精准投放。

    每隔15分钟左右观察一次推广曝光情况,进行调价策,观察时如没有新增曝光量,说明出价太低未能得到展示,需要调高出价,如果出价已经达到最高,说明门店质量分没有优势或所属品类此时无法得到很好竞选优势。如果有新增曝光,但新增入店次数过低,说明门店入店转化率低,需要优化“内功”,提升入店转化率。如果有新增曝光次数,又有新增入店次数,那么就需要记录下数据,进行核算ROI是否成正比,什么时段,什么时期,那种情况下能够保障ROI比例更高,便于指导后续投放。

    点金推广ROI计算法如下,以点金推广为例:

    某某门店8月31日点金推广花费276.17元,由点金推广带来的成交顾客和产生的实际交易额和毛利产出,我们无法看到实际的数据,只能根据已有数据去计算。

    68c7ad8f8ad27eff8387b2701c8bfb80.png

    点金推广产生的实际交易额=曝光人数*入店转化率*下单转化率*当日人均下单次数*实收单均

    8月31日点金推广给我门店带来的曝光总次数是10503次,入店次数是589次,根据8月31日我门店的经营流量数据可以换算出:

    56956ff8f28b87e70271a3e79800c624.png

    点金推广给我门店带来的曝光人数约为=10503÷(36270÷14354)=4156.6

    点金推广给我门店带来的入店人数约为=589÷(2874÷1170)=239.78

    点金推广的入店转化率=239.78÷4256.6=5.77%

    点金推广的入店转化率远低于总的入店转化率,需要策划创意活动,想办法提升点金推广的点击率。

    人均购买次数计算

    我的门店人均购买次数为=(8660+106)÷(3776+919+343+158+209)=1.62

    eb1f0324fa56235f2ec71ded0d79df02.png

    9bfa4350d96f1c3dcbc808bb7f904629.png

    备注:这里以90天的数据来算而不是以8月31号的数据来算人均购买次数是因为一个顾客不可能只会一天在我门店下单,其后续部分顾客还会复购,而外卖的用户购买生命周期对于单门店而言一般在90天左右,所以我们以90天的数据进行计算。

    实收客单价计算

    实收客单价=财务到账金额 /单数

    8月31日我的门店实收单均为=11041.31÷ 148=74.6

    0c0b94d8234374fa7536445819a3da8e.png

    7350f70d8218d53b96234149f59a53f6.png

    点金推广带来的毛利核算

    8月31日点金推广给我门店带来的收益为=239.78(广告带来的入店人数)*12.56%(昨日门店综合下单转化率)*151/147(当日人均购买次数)*74.6(实收单均价)=·2307.93

    我的门店8月31日的实收毛利率为45%

    那么8月31日点金推广创造的毛利预估为=2307.93*45%=1038.56

    备注:这里的实收毛利率=某段时间内的实收毛利÷某段时间内的实收营业额。实收毛利是除去平台抽佣,食材成本,包装成本(如果是自配送还应该算上配送成本)之后的收入。这里的实收毛利率既可以拿推广当天的来计算,也可以拿近30天的数据来计算。门店应该养成每周扎帐的习惯,每周盘算收益情况。

    ROI的核算

    8月31日我的门店点金推广的ROI=当日毛收益*人均购买:推广费用=1038.56*1.62:276.17=6.09:1

    即1元的推广投入,带来的毛收益为6.09元,投入产出比可以

    备注:由于获取的顾客不仅一次购买,下一个周期内还是会购买,因此需要乘以人均购买次数

    ype���&��

    展开全文
  • 在图像处理过程中,我们特别希望从图像中获取感兴趣区域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

    展开全文
  • 感兴趣区域(ROI,region of interest),在机器视觉、图像处理中,在被处理的图像上以方框、圆、椭圆、不规则多边形等方式勾勒出需要处理的区域,称为感兴趣区域,简称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;  
  • 点击上方“新机器视觉”,选择加"星标"或“置顶”重磅干货,第一时间送达随着工业相机的普及,大家对芯片AOI技术的认识也越来越深刻,可是仍然有很多人弄不清楚,本文即旨在帮助大家彻底弄清楚ROI、BIN、SKIP 这几种...
  • 问题:  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
  • 在本文中,我们提出了一种基于感兴趣区域RoI)的机器人抓取检测算法,以同时检测目标及其在物体重叠场景中的抓取。我们提出的算法使用感兴趣区域(RoIs)来检测目标的分类和位置回归。为了训练网络,我们提供了比...
  • # 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区域,并且显示出来 1、 一种可行的办法就是:将原图与ROI图作乘法,然后就可以将非ROI区域置0,ROI区域保留下来。 2、另外一种可行的做法是:将原图与ROI图作与操作,可以达到同样的...
  • 如何快速获取图片的ROI区域坐标

    千次阅读 2017-09-19 08:56:29
    利用工具ps 打开ps工具,然后将图片打开,选择窗口->信息,或者直接按f8 可以对于红线部分的加号选择单位 这样将鼠标放在图片上某一点即可显示坐标信息 然后根据坐标信息可以对图片进行ROI区域的裁剪
  • Mat ROI = image(Rect(10, 10, 20, 20)); // 法二, 使用Range类, 先是行的范围,后是列的范围 Mat ROI2 = image(Range(10,30), Range(10, 30)); Python img = cv2.imread('', -1) # 行的范围, 列的范围, ...
  • 任务3:鼠标获取任意ROI区域

    千次阅读 2017-08-14 17:08:28
    //画线闭合区域被黑色填充显示在BG_mask上 floodFill(FG_mask, Point(x, y), Scalar( 255 )); //画线闭合区域被白色填充显示在FG_mask上 //imshow("BG_mask", BG_mask); //显示黑色模板 imshow( "FG_mask" ...
  • 获取图像属性、兴趣ROI区域及通道处理一、获取图像属性二、获取感兴趣ROI区域三、通道处理1.通道拆分2.通道合并 实验环境: Anaconda+Sublime Text 3 在OpenCV中使用imread函数时,除了第一个参数外(第一个参数是...
  • 提取ROI区域 def roi_demo(image): """ ROI(region of interest) 感兴趣区域,从被处理的图像以方框、圆、椭圆、 ... face = src[200:400, 200:400] # 获取ROI区域:高度,宽度 gray_face = cv.cvtCo...
  • 项目需要得到视频帧图像的某一区域作为模板,首先需要确定ROI区域的坐标范围,很简单,直接上代码。 % /************************************************************************ % * Copyright(c) 2017 ...
  • OpenCV:ROI区域透明处理

    千次阅读 2017-12-13 14:03:11
    1、获取原始图像1的ROI区域ROI区域与原始图像2大小相同; 2、将两张大小和通道数相同的图像(ROI和原始图像2)进行加权,加权后图像为透明状; 3、将加权后的图像转换为灰度图作为掩模; 4、将加权后的透明图像...
  • 在图像处理中,有时需要分块处理,...ROI 区域的两种定义方法: 1. 使用cv::Rect. cv::Rect 表示一个矩形区域,常用的构造函数如下: Rect_ (_Tp _x, _Tp _y, _Tp _width, _Tp _height) //前两个参数表示的是所选

空空如也

空空如也

1 2 3 4 5 ... 17
收藏数 328
精华内容 131
关键字:

获取roi区域