python 实现从高分辨图像上抠取图像块


Posted in Python onJanuary 02, 2020

我就废话不多说了,直接上代码吧!

#coding=utf-8
import cv2
import numpy as np
import os
# 程序实现功能:
# 根据patch在高分辨率图像上的索引值,crop出对应区域的图像
# 并验证程序的正确性
'''
对于当前输入的3328*3328的高分辨率特征图,首先resize到640*640
然后根据当前的patch文件名(包含了patch在高分辨率图像上的行索引和列索引)
这个索引值是将高分辨率图像划分成多个没有overlap的256*256的图像块之后的行索引和列索引
行索引range(1,11),列索引range(0,12)
3328=13*256
'''

index='IDRiD_03_3_12.jpg'
raw_img_path='F:\\2\\eye_seg_con\\eye_seg\\joint_data\\raw_image\\train'
patches_path='F:\\2\\eye_seg_con\\eye_seg\\joint_data\\patches\\train'
true_patches=cv2.imread(os.path.join(patches_path,index))[:,:,::-1]

print(os.path.join(raw_img_path,index.split('_')[0]+index.split('_')[1]+'.jpg'))

hr_img=cv2.imread(os.path.join(raw_img_path,index.split('_')[0]+'_'+index.split('_')[1]+'.jpg'))[:,:,::-1]
hr_img=cv2.resize(hr_img,(640,640))# hr_img RGB

'''
640/13=49.23076923076923 记作unit
将640*640的区域平均划分成13*13份,每一份的像素点大小是unit*unit
然后将对应位置(取整)的图像块抠出来,resize成256*256大小
'''
unit=640/13
patch_row_num = int(index[:-4].split('_')[2])
patch_col_num = int(index[:-4].split('_')[3])

row_start=round(patch_row_num*unit)
row_end=round((patch_row_num+1)*unit)
col_start=round(patch_col_num*unit)
col_end=round((patch_col_num+1)*unit)

my_patch=hr_img[row_start:row_end,col_start:col_end,:]
my_patch=cv2.resize(my_patch,(256,256))
my_patch=np.array(my_patch,dtype=np.uint8)

cv2.imshow('true_patches',true_patches[:,:,::-1])
cv2.waitKey(0)

cv2.imshow('my_patch',my_patch[:,:,::-1])
cv2.waitKey(0)

# # hr_img RGB
#
# # cv2.imshow('1',hr_img[:,:,::-1])
# # cv2.waitKey(0)
#
# hr_img2=cv2.imread(os.path.join(raw_img_path,index.split('_')[0]+'_'+index.split('_')[1]+'.jpg'))
# hr_img2=cv2.resize(hr_img2,(640,640))[:,:,::-1]# hr_img2 RGB
# # cv2.imshow('2',hr_img2[:,:,::-1])
# # cv2.waitKey(0)
#
# print(np.sum(hr_img2-hr_img))# 0

# 结论:
# 对于cv2.resize函数而言,无论是先进行BGR的通道转换,再resize,还是先进行resize,再进行BGR通道转换
# 所得到的图像是相同的,即resize和通道维度的变换可交换顺序
# 实际上resize只发生在spatial dimension,而通道变换发生在channels dimension,所以空间维度上的插值变换
# 是在每个通道维度上独立进行的。
# 另外,对于计算机而言,所读取到的彩色图像就是H*W*3的矩阵而已,它本身是没有办法区分究竟是BGR格式还是RGB格式的

以上这篇python 实现从高分辨图像上抠取图像块就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python中使用PIPE操作Linux管道
Feb 04 Python
python执行等待程序直到第二天零点的方法
Apr 23 Python
初步解析Python下的多进程编程
Apr 28 Python
理解Python中的With语句
Mar 18 Python
简单的python后台管理程序
Apr 13 Python
利用numpy和pandas处理csv文件中的时间方法
Apr 19 Python
详解python内置常用高阶函数(列出了5个常用的)
Feb 21 Python
使用sklearn对多分类的每个类别进行指标评价操作
Jun 11 Python
Pycharm常用快捷键总结及配置方法
Nov 14 Python
python 录制系统声音的示例
Dec 21 Python
Matplotlib animation模块实现动态图
Feb 25 Python
Python中22个万用公式的小结
Jul 21 Python
python base64库给用户名或密码加密的流程
Jan 02 #Python
python文件处理fileinput使用方法详解
Jan 02 #Python
linux 下python多线程递归复制文件夹及文件夹中的文件
Jan 02 #Python
Pytorch的mean和std调查实例
Jan 02 #Python
pytorch 图像预处理之减去均值,除以方差的实例
Jan 02 #Python
Linux下升级安装python3.8并配置pip及yum的教程
Jan 02 #Python
pytorch实现focal loss的两种方式小结
Jan 02 #Python
You might like
使用TinyButStrong模板引擎来做WEB开发
2007/03/16 PHP
php+mysqli实现批量执行插入、更新及删除数据的方法
2015/01/29 PHP
thinkphp3.2点击刷新生成验证码
2016/02/16 PHP
yii框架结合charjs实现统计30天数据的方法
2020/04/04 PHP
IE 下的只读 innerHTML
2009/08/21 Javascript
JavaScript 常用函数库详解
2009/10/21 Javascript
基于jquery的模态div层弹出效果
2010/08/21 Javascript
js获得地址栏?问号后参数的方法
2013/08/08 Javascript
js获取当前月的第一天和最后一天的小例子
2013/11/18 Javascript
jquery 获取dom固定元素 添加样式的简单实例
2014/02/04 Javascript
JS实现倒计时和文字滚动的效果实例
2014/10/29 Javascript
JS+CSS实现实用的单击输入框弹出选择框的方法
2015/02/28 Javascript
基于javascript实现窗口抖动效果
2016/01/03 Javascript
浅谈js函数中的实例对象、类对象、局部变量(局部函数)
2016/11/20 Javascript
vue高德地图之玩转周边
2017/06/16 Javascript
vue父组件点击触发子组件事件的实例讲解
2018/02/08 Javascript
webpack将js打包后的map文件详解
2018/02/22 Javascript
详解element-ui级联菜单(城市三级联动菜单)和回显问题
2019/10/02 Javascript
JavaScript实现简单的计算器
2020/01/16 Javascript
linux 下以二进制的方式安装 nodejs
2020/02/12 NodeJs
Vue列表循环从指定下标开始的多种解决方案
2020/04/08 Javascript
[01:07:19]2018DOTA2亚洲邀请赛 4.5 淘汰赛 Mineski vs VG 第一场
2018/04/06 DOTA
python连接sql server乱码的解决方法
2013/01/28 Python
Python爬虫实例_城市公交网络站点数据的爬取方法
2018/01/10 Python
解决Tensorflow安装成功,但在导入时报错的问题
2018/06/13 Python
Python mutiprocessing多线程池pool操作示例
2019/01/30 Python
Python基于class()实现面向对象原理详解
2020/03/26 Python
关于HTML5你必须知道的28个新特性,新技巧以及新技术
2012/05/28 HTML / CSS
美国时尚在线:Showpo
2017/09/08 全球购物
一套VC试题
2015/01/23 面试题
Windows和Linux动态库应用异同
2016/07/28 面试题
节约电力资源的建议书
2014/03/12 职场文书
英语课前三分钟演讲稿(6篇)
2014/09/13 职场文书
世界红十字日活动总结
2015/02/10 职场文书
商务宴会祝酒词
2015/08/11 职场文书
Python函数中的不定长参数相关知识总结
2021/06/24 Python