selective search生成.mat文件
Posted 去做点事情
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了selective search生成.mat文件相关的知识,希望对你有一定的参考价值。
https://github.com/sergeyk/selective_search_ijcv_with_python 里的selective_search.py是python接口
import tempfile import subprocess import shlex import os import numpy as np import scipy.io script_dirname = os.path.abspath(os.path.dirname(__file__)) def get_windows(image_fnames, cmd=\'selective_search\'): """ Run MATLAB Selective Search code on the given image filenames to generate window proposals. Parameters ---------- image_filenames: strings Paths to images to run on. cmd: string selective search function to call: - \'selective_search\' for a few quick proposals - \'selective_seach_rcnn\' for R-CNN configuration for more coverage. """ # Form the MATLAB script command that processes images and write to # temporary results file. f, output_filename = tempfile.mkstemp(suffix=\'.mat\') os.close(f) fnames_cell = \'{\' + \',\'.join("\'{}\'".format(x) for x in image_fnames) + \'}\' command = "{}({}, \'{}\')".format(cmd, fnames_cell, output_filename) print(command) # Execute command in MATLAB. mc = "matlab -nojvm -r \\"try; {}; catch; exit; end; exit\\"".format(command) pid = subprocess.Popen( shlex.split(mc), stdout=open(\'/dev/null\', \'w\'), cwd=script_dirname) retcode = pid.wait() if retcode != 0: raise Exception("Matlab script did not exit successfully!") # Read the results and undo Matlab\'s 1-based indexing. all_boxes = list(scipy.io.loadmat(output_filename)[\'all_boxes\'][0]) subtractor = np.array((1, 1, 0, 0))[np.newaxis, :] all_boxes = [boxes - subtractor for boxes in all_boxes] # Remove temporary file, and return. os.remove(output_filename) if len(all_boxes) != len(image_fnames): raise Exception("Something went wrong computing the windows!") return all_boxes if __name__ == \'__main__\': """ Run a demo. """ import time image_filenames = [ script_dirname + \'/000015.jpg\', script_dirname + \'/cat.jpg\' ]*4 t = time.time() boxes = get_windows(image_filenames) print(boxes[:2]) print("Processed {} images in {:.3f} s".format( len(image_filenames), time.time() - t))
直接运行不会产生.mat文件,而是如图:
把os.remove(output_filename)这句注释掉就可以在/tmp目录下找到文件。
以上是关于selective search生成.mat文件的主要内容,如果未能解决你的问题,请参考以下文章
为 mat-select 预选多个值 - Angular 6