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

Selective Search for Object Recognition(理解)

matlab中mat文件的生成和读取

featureDB.mat怎么生成

怎样将.mat文件生成图像显示

目标检测算法:Selective Search(选择性搜索)简述