代码涉及到:遍历目标路径,选取csv后缀的文件,遍历csv每一行,读取坐标,用cv操作图片

# !/usr/bin/python
# -*- coding: UTF- -*-
import pandas as pd
import os
import time
import scipy.misc
from shutil import copyfile
from PIL import Image
import shutil g_img = None def saveToMysql(row):
sides = [,,,,,,]
img = g_img
limit_x = img.shape[]
limit_y = img.shape[]
for side in sides:
x1 = row.X - side
x2 = row.X + side
y1 = row.Y - side
y2 = row.Y + side
x1 = min(limit_x, max(, x1))
x2 = max(x1+, min(limit_x, x2))
y1 = min(limit_y, max(, y1))
y2 = max(, min(limit_y, y2))
t1 = int(time.time()*)
cropped = img[y1:y2,x1:x2,:]
t2 = int(time.time()*)
#new_crop_parh = row.img + '_' + str(row.Type) + '_' + str(row.X) + '_' + str(row.Y) + '.png'
new_crop_parh = 'img_crop/' + str(row.Type) + '/' + row.crop + '_' + str(row.X) + '_' + str(row.Y) + '_' + str(side) + '.png'
scipy.misc.imsave(new_crop_parh , cropped)
t3 = int(time.time()*)
# print("剩余时间:",(t3-t2)*//) if __name__ == '__main__':
for i in range(,):
path = './img_crop/' + str(i)
#if os.path.exists(path):
# shutil.rmtree(path+'/')
#os.mkdir(path) for line in open("xae"):
csvpath = line.strip('\n')
if not csvpath or not os.path.exists(csvpath):
print('not found: ' + csvpath) arr = csvpath.split('/')
image = arr[].replace(".csv", ".JPG")
medicalId=arr[]
batchId=arr[] img_path = 'img/' + batchId + '/' + medicalId + '/Images/' + image
#print(img_path)
img_path_crop_path = batchId + '_' + medicalId + '_' + image # print(csvpath)
df = pd.read_csv(csvpath)
#print(df)
df['img'] = img_path
df['crop'] = img_path_crop_path
g_img = scipy.misc.imread(img_path)
df.apply(saveToMysql, axis=)

python文件处理-将图像根据坐标切割成若干小图的更多相关文章

  1. python文件处理-将图像根据坐标画矩形标记

    内容涉及:文件遍历,选取csv后缀文件,用cv操作图片 import csv import os import sys import numpy as np import copy import sh ...

  2. python 识别图像主题并切割

    两种办法,一种是用百度的API,效果还可以,不过好像每天有50次的调用的限制 from aip import AipImageClassify import cv2 """ ...

  3. Python 利用GDAL对图像进行几何校正

    原文链接:https://blog.csdn.net/qq_27045589/article/details/81062586 一.几何校正方法 图像校正本质是建立一种从原始图像行列号到某种投影的数学 ...

  4. python文件和文件夹訪问File and Directory Access

    http://blog.csdn.net/pipisorry/article/details/47907589 os.path - Common pathname manipulations 都是和路 ...

  5. 初学Python——文件操作第二篇

    前言:为什么需要第二篇文件操作?因为第一篇的知识根本不足以支撑基本的需求.下面来一一分析. 一.Python文件操作的特点 首先来类比一下,作为高级编程语言的始祖,C语言如何对文件进行操作? 字符(串 ...

  6. day8.python文件操作

    打开和关闭文件 open函数 用Python内置的open()函数打开一个文件,创建一个file对象,相关的方法才可以调用它进行读写. file = open(file_name [, access_ ...

  7. 4、Python文件对象及os、os.path和pickle模块(0530)

    文件系统和文件 1.文件系统是OS用于明确磁盘或分区上的文件的方法和数据结构---即在磁盘上组织文件的方法: 文件系统模块:os 2.计算机文件(称文件.电脑档案.档案),是存储在某种长期储存设备或临 ...

  8. 万恶之源 - Python文件操作

    文件操作 初始文件操作 使用Python来读写文件是非常简单的操作,我们使用open()函数来打开一个文件,获取到文件句柄,然后通过文件句柄就可以进行各种各样的操作了 根据打开方式的不同能够执行的操作 ...

  9. (转)使用Python和OpenCV检测图像中的物体并将物体裁剪下来

    原文链接:https://blog.csdn.net/liqiancao/article/details/55670749 介绍 硕士阶段的毕设是关于昆虫图像分类的,代码写到一半,上周五导师又给我新的 ...

随机推荐

  1. c#tcp多线程服务器实例代码

    using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using Sy ...

  2. Java实现 蓝桥杯 基础练习 闰年判断

    基础练习 闰年判断 时间限制:1.0s 内存限制:256.0MB 提交此题 锦囊1 锦囊2 问题描述 给定一个年份,判断这一年是不是闰年. 当以下情况之一满足时,这一年是闰年: 年份是4的倍数而不是1 ...

  3. Java实现 蓝桥杯VIP 算法训练 阶乘末尾

    问题描述 给定n和len,输出n!末尾len位. 输入格式 一行两个正整数n和len. 输出格式 一行一个字符串,表示答案.长度不足用前置零补全. 样例输入 6 5 样例输出 00720 数据规模和约 ...

  4. Java实现蓝桥杯分金币

    分金币 圆桌旁坐着n个人,每人有一定数量的金币,金币总数能被n整除.每个人可以给他左右相邻的人一些金币, 最终使得每个人的金币数目相等.你的任务是求出被转手的金币数量的最小值. 比如,n=4,且4个人 ...

  5. Java实现 蓝桥杯VIP 算法提高 任意年月日历输出

    算法提高 任意年月日历输出 时间限制:1.0s 内存限制:512.0MB 已知2007年1月1日为星期一. 设计一函数按照下述格式打印2007年以后(含)某年某月的日历,2007年以前的拒绝打印. 为 ...

  6. Java实现简易计算器

    import java.util.Scanner; public class Demo_1 { public static void main(String[] args) { //输入的两个数字进行 ...

  7. java实现第六届蓝桥杯饮料换购

    饮料换购 饮料换购 乐羊羊饮料厂正在举办一次促销优惠活动.乐羊羊C型饮料,凭3个瓶盖可以再换一瓶C型饮料,并且可以一直循环下去,但不允许赊账. 请你计算一下,如果小明不浪费瓶盖,尽量地参加活动,那么, ...

  8. java实现第五届蓝桥杯六角填数

    六角填数 题目描述 如图[1.png]所示六角形中,填入1~12的数字. 使得每条直线上的数字之和都相同. 图中,已经替你填好了3个数字,请你计算星号位置所代表的数字是多少? 请通过浏览器提交答案,不 ...

  9. 64位手机无法加载x5(libmttwebview.so is 32-bit instead of 64-bit)

    x5内核暂时不提供64位的so文件,在64位手机上需要让AP以32位模式运行. 具体操作如下: 1.如果使用是Eclipse则需要将所有的.so文件都放置在so加载目录:lib/armeabi文件夹下 ...

  10. 第一个SpringMVC程序 (注解版)

    1.新建一个web项目 2.导入相关jar包 3.编写web.xml , 注册DispatcherServlet <?xml version="1.0" encoding=& ...