https://github.com/sergeyk/selective_search_ijcv_with_python 里的selective_search.py是python接口

  1. import tempfile
  2. import subprocess
  3. import shlex
  4. import os
  5. import numpy as np
  6. import scipy.io
  7.  
  8. script_dirname = os.path.abspath(os.path.dirname(__file__))
  9.  
  10. def get_windows(image_fnames, cmd='selective_search'):
  11. """
  12. Run MATLAB Selective Search code on the given image filenames to
  13. generate window proposals.
  14.  
  15. Parameters
  16. ----------
  17. image_filenames: strings
  18. Paths to images to run on.
  19. cmd: string
  20. selective search function to call:
  21. - 'selective_search' for a few quick proposals
  22. - 'selective_seach_rcnn' for R-CNN configuration for more coverage.
  23. """
  24. # Form the MATLAB script command that processes images and write to
  25. # temporary results file.
  26. f, output_filename = tempfile.mkstemp(suffix='.mat')
  27. os.close(f)
  28. fnames_cell = '{' + ','.join("'{}'".format(x) for x in image_fnames) + '}'
  29. command = "{}({}, '{}')".format(cmd, fnames_cell, output_filename)
  30. print(command)
  31.  
  32. # Execute command in MATLAB.
  33. mc = "matlab -nojvm -r \"try; {}; catch; exit; end; exit\"".format(command)
  34. pid = subprocess.Popen(
  35. shlex.split(mc), stdout=open('/dev/null', 'w'), cwd=script_dirname)
  36. retcode = pid.wait()
  37. if retcode != 0:
  38. raise Exception("Matlab script did not exit successfully!")
  39.  
  40. # Read the results and undo Matlab's 1-based indexing.
  41. all_boxes = list(scipy.io.loadmat(output_filename)['all_boxes'][0])
  42. subtractor = np.array((1, 1, 0, 0))[np.newaxis, :]
  43. all_boxes = [boxes - subtractor for boxes in all_boxes]
  44.  
  45. # Remove temporary file, and return.
  46. os.remove(output_filename)
  47. if len(all_boxes) != len(image_fnames):
  48. raise Exception("Something went wrong computing the windows!")
  49. return all_boxes
  50.  
  51. if __name__ == '__main__':
  52. """
  53. Run a demo.
  54. """
  55. import time
  56.  
  57. image_filenames = [
  58. script_dirname + '/000015.jpg',
  59. script_dirname + '/cat.jpg'
  60. ]*4
  61. t = time.time()
  62. boxes = get_windows(image_filenames)
  63. print(boxes[:2])
  64. print("Processed {} images in {:.3f} s".format(
  65. len(image_filenames), time.time() - t))

直接运行不会产生.mat文件,而是如图:

把os.remove(output_filename)这句注释掉就可以在/tmp目录下找到文件。

selective search生成.mat文件的更多相关文章

  1. matlab结构体形式保存数据生成.mat文件< 转>

    2015年 参加天池大数据竞赛     为了建立模型,打算基于matlab使用Random Forest Algorithm的工具包 该工具包我在此分享给大家,http://yunpan.cn/cVX ...

  2. matlab 生成mat文件

    生成MAT文件 假如你的矩阵A.B都已赋值,现在需要将A,B矩阵保存成mat格式文件,执行如下命令:save mydata A B 就会把A B矩阵数据保存在yourdata.dat文件中了 保存指定 ...

  3. Visual Studio 控制台应用程序 同时使用OpenCV和matlab mat文件操作

    matalb具有灵活的图像处理,代码编写起来简洁而高效.而OpenCV具有很多成熟的计算机视觉算法,能够处理很多实时的识别处理等问题,而且代码运行起来效率很高.所以如何结合两者之间的优点,是让很多学术 ...

  4. 生成hprof文件,用MAT进行分析

    生成hprof文件可以在DDMS选中进程点击窗口左上角的"dump hprof file"按钮来直接生成,也可以通过在程序加代码中来生成 代码2: void generateHpr ...

  5. 将Mat类型坐标数据生成pts文件

    前言 获取人脸特征点的坐标信息之后,想要将坐标信息shape保存为pts/asf/txt等文件格式,本文就对此进行实现. 实现过程 1.确定pts文件的书写格式: 以要生成的文件为例,书写格式如下: ...

  6. 第三十三节,目标检测之选择性搜索-Selective Search

    在基于深度学习的目标检测算法的综述 那一节中我们提到基于区域提名的目标检测中广泛使用的选择性搜索算法.并且该算法后来被应用到了R-CNN,SPP-Net,Fast R-CNN中.因此我认为还是有研究的 ...

  7. 目标检测之选择性搜索-Selective Search

    一.滑动窗口检测器 一种用于目标检测的暴力方法就是从左到右,从上到下滑动窗口,利用分类识别目标.为了在不同观察距离处检测不同的目标类型,我们可以使用不同大小和宽高比的窗口 得到窗口内的图片送入分类器, ...

  8. Selective Search for Object Recognition 论文笔记【图片目标分割】

    这篇笔记,仅仅是对选择性算法介绍一下原理性知识,不对公式进行推倒. 前言: 这篇论文介绍的是,如果快速的找到的可能是物体目标的区域,不像使用传统的滑动窗口来暴力进行区域识别.这里是使用算法从多个维度对 ...

  9. 【Android Studio安装部署系列】二十五、Android studio使用NDK生成so文件和arr文件

    版权声明:本文为HaiyuKing原创文章,转载请注明出处! 概述 Android Studio使用ndk的简单步骤. NDK环境搭建 下载NDK 下载链接:https://developer.and ...

随机推荐

  1. 解读人:李琼,Metabolic profiling of tumors, sera and skeletal muscles from an orthotopic murine model of gastric cancer associated-cachexia(胃癌相关恶病质的原位小鼠模型中肿瘤,血清和骨骼肌的代谢谱分析)

    发表时间:(2019年4月) IF:3.950 单位: 厦门大学 厦门理工大学 物种:小鼠的肿瘤,血清和骨骼肌 技术:核磁共振代谢组学分析 一. 概述:(用精炼的语言描述文章的整体思路及结果) 本研究 ...

  2. Jmeter中JDBC Request和BeanShell PostProcessor的结合使用(SQL模糊查询)

    [前言] 今天记录一下Jmeter中JDBC Request和BeanShell PostProcessor的结合使用的方法(SQL模糊查询) [步骤] 1.下载对应数据库的驱动包到jmeter安装目 ...

  3. thinkphp5使用第三方没有使用命名空间的类库

    特别注意的是,如果你需要调用PHP内置的类库,或者第三方没有使用命名空间的类库,记得在实例化类库的时候加上 \ // 错误的用法 $class = new stdClass(); $xml = new ...

  4. 【JavaScript权威指南】——逻辑与(&&)

    三种用法总结: 1.布尔值计算: [成员]={false,true} 2.“真值”,“假值”计算: [假值]={false,null,undefined,0,-0,NaN,""} ...

  5. JAVA内存模型(Java Memory Model ,JMM)

    http://blog.csdn.net/hxpjava1/article/details/55189077 JVM有主内存(Main Memory)和工作内存(Working Memory),主内存 ...

  6. 【Java密码学】使用Bouncy Castle生成数字签名、数字信封

    Bouncy Castle(轻量级密码术包)是一种用于 Java 平台的开放源码的轻量级密码术包,它支持大量的密码术算法,并提供 JCE 1.2.1 的实现.最近项目上正好用到了Bouncy Cast ...

  7. 《从0到1学习Flink》—— Flink 写入数据到 Kafka

    前言 之前文章 <从0到1学习Flink>-- Flink 写入数据到 ElasticSearch 写了如何将 Kafka 中的数据存储到 ElasticSearch 中,里面其实就已经用 ...

  8. RabbitMQ使用教程(三)如何保证消息99.99%被发送成功?

    1. 前情回顾 RabbitMQ使用教程(一)RabbitMQ环境安装配置及Hello World示例 RabbitMQ使用教程(二)RabbitMQ用户管理,角色管理及权限设置 在以上两篇博客发布后 ...

  9. PIO导出

    1..HSSFWorkbook 声明一个工作簿,创建一个excel文件 //创建HSSFWork对象(excel的文档对象) HSSFWorkbook wb=new HSSFWorkbook(); / ...

  10. 谷歌地图自定义popup框

    谷歌地图的infowindow 不提供官方的定制化 <!DOCTYPE html> <html> <head> <meta name="viewpo ...