Homography数据集制作

原创 2018年04月17日 18:22:43
# coding=utf-8

import cv2
from PIL import Image
from pylab import *
import numpy as np
import os

RAW_IMAGE_PATH = "/home/wgp/视频/DJI_0071/"
SAVE_FILE_PATH = "/home/wgp/视频/ha/"
GT_FILE_NAME = "gt.txt"
PTS_FILE_NAME = "pts1.txt"
FILE_LIST_NAME = "filelist.txt"
MODE = "train"
INTERVAL = 3


def draw_points(image1, image2):
    im1 = array(Image.open(image1))
    imshow(im1)
    print '左图:请选择四个点点击-->'
    x1 = ginput(4)
    print '选中四点坐标为:', x1
    im2 = array(Image.open(image2))
    imshow(im2)
    print '右图:请选择四个点点击-->'
    x2 = ginput(4)
    print '选中四点坐标为:', x2
    return x1, x2


def compute_homography(sourcePoints, destinationPoints):
    H = cv2.getPerspectiveTransform(np.float32(sourcePoints), np.float32(destinationPoints))
    return H


def compute_save_ground_truth(sourcePoints, destinationPoints, pts1_file, gt_file, filenames_file, index):
    f_pts1 = open(pts1_file, 'ab')
    f_gt = open(gt_file, 'ab')
    f_file_list = open(filenames_file, 'ab')

    pts1 = np.array(sourcePoints).flatten().astype(np.float32)
    gt = np.subtract(np.array(destinationPoints), np.array(sourcePoints))
    gt = np.array(gt).flatten().astype(np.float32)

    np.savetxt(f_gt, [gt], delimiter=' ')
    np.savetxt(f_pts1, [pts1], delimiter=' ')
    f_file_list.write('%s %s\n' % (str(index) + '.jpg', str(index) + '.jpg'))


def get_all_images(file_path):
    raw_image_list = remove_hidden_file(os.listdir(file_path))
    raw_image_list.sort(key=lambda x: int(x[:-4]))
    return raw_image_list


def remove_hidden_file(directory_list):
    if '.' in directory_list:
        directory_list.remove('.')
    if '..' in directory_list:
        directory_list.remove('.')
    if '.DS_Store' in directory_list:
        directory_list.remove('.DS_Store')
    return directory_list


def gen_data(interval):
    if not os.path.exists(SAVE_FILE_PATH):
        os.makedirs(SAVE_FILE_PATH)
    if MODE == 'train':
        f_pts1 = os.path.join(SAVE_FILE_PATH, "train_" + PTS_FILE_NAME)
        f_gt = os.path.join(SAVE_FILE_PATH, "train_" + GT_FILE_NAME)
        f_file_list = os.path.join(SAVE_FILE_PATH, "train_" + FILE_LIST_NAME)
    else:
        f_pts1 = os.path.join(SAVE_FILE_PATH, "test_" + PTS_FILE_NAME)
        f_gt = os.path.join(SAVE_FILE_PATH, "test_" + GT_FILE_NAME)
        f_file_list = os.path.join(SAVE_FILE_PATH, "test_" + FILE_LIST_NAME)

    raw_image_list = get_all_images(RAW_IMAGE_PATH)
    for img_index in range(len(raw_image_list) - interval):
        left_image = RAW_IMAGE_PATH + raw_image_list[img_index]
        right_image = RAW_IMAGE_PATH + raw_image_list[img_index + interval]

        # print(left_image, right_image)
        sourcePoints, destinationPoints = draw_points(left_image, right_image)

        H = compute_homography(sourcePoints, destinationPoints)
        print("单应矩阵:", H)

        compute_save_ground_truth(sourcePoints, destinationPoints, f_pts1, f_gt, f_file_list, img_index)


if __name__ == '__main__':
    gen_data(INTERVAL)
版权声明:本文为博主原创文章,转载注明出处即可。 https://blog.csdn.net/bskfnvjtlyzmv867/article/details/79978780

Skyline三维地表数据集MPT构建视频教程

本课程以实际案例出发,手把手,教你如何从数据分析开始,下载数据,免费获取各种影像和DEM数据,数据整合,创建三维地表数据集MPT,纯实战。
  • 2017年10月29日 23:41

机器学习数据集

大学公开数据集 (Stanford)69G大规模无人机(校园)图像数据集【Stanford】 http://cvgl.stanford.edu/projects/uav_data/   人脸素...
  • weixin_40061167
  • weixin_40061167
  • 2017-11-27 20:59:56
  • 1525

干货|免费文本语料训练数据集

关于Word2Vec,上篇文章文本分类特征提取之Word2Vec中已有还算详尽的叙述。简单总结下:word2vec是Google在2013年提出的一款开源工具,其是一个Deep Learning模型(...
  • m0epNwstYk4
  • m0epNwstYk4
  • 2017-12-18 00:00:00
  • 1036

分类任务数据集制作

众所周知,在深度学习图像分类、目标检测等任务的训练过程中需要大量的训练图片;为了方便快速批量的读取数据,往往都会先把图片数据集转化成特殊的文件格式,常见的如:.mat, .npy, .pkl, ....
  • u011746554
  • u011746554
  • 2017-07-09 11:43:46
  • 820

各种数据集汇总

转:http://bbs.w3china.org/blog/more.asp?name=idmer&id=24017 大家做数据挖掘研究时,常常为找不到合适的数据而发愁。在KDNuggets上有...
  • u010062397
  • u010062397
  • 2015-11-05 10:46:56
  • 5026

数据集

数据集大数据https://delicious.com/pskomoroch/dataset http://stackoverflow.com/questions/10843892/download-...
  • qq_28168421
  • qq_28168421
  • 2017-09-04 12:47:59
  • 1071

<em>文本</em>分类<em>数据集合</em>

2012-07-19 上传大小:13.99MB 分类<em>数据集</em> 数据挖掘或机器学习,<em>文本</em>分类,聚类完整<em>数据集合</em>数据挖掘或机器学习,<em>文本</em>分类,聚类完整<em>数据集合</em>数据挖掘或机器学习,<em>文本</em>...
  • 2018年04月18日 00:00

在caffe环境下制作自己的数据集

Chen J, Kang X, Liu Y, et al. Median Filtering Forensics Based on Convolutional Neural Networks[J]. ...
  • zj15939317693
  • zj15939317693
  • 2017-01-19 21:31:38
  • 3014

仿照CIFAR-10数据集格式,制作自己的数据集

前一篇博客:C/C++ 图像二进制存储与读取中,已经讲解了如何利用C/C++的方法存储与读取二进制图像文件,本文继续讲述如何根据CIFAR-10的格式制作自己的数据集。...
  • YhL_Leo
  • YhL_Leo
  • 2016-03-04 12:42:14
  • 14152

深度学习caffe平台--制作自己.lmdb格式数据集及分类标签文件

caffe对于训练数据格式,支持:lmdb、h5py……,其中lmdb数据格式常用于单标签数据,像分类等,经常使用lmdb的数据格式。对于回归等问题,或者多标签数据,一般使用h5py数据的格式。当然好...
  • liuweizj12
  • liuweizj12
  • 2016-08-08 10:38:37
  • 15963
收藏助手
不良信息举报
您举报文章:Homography数据集制作
举报原因:
原因补充:

(最多只允许输入30个字)