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实现批量改文件名称的方法
May 25 Python
Django 2.0版本的新特性抢先看!
Jan 05 Python
Python3 中文文件读写方法
Jan 23 Python
Python 实现数据结构-堆栈和队列的操作方法
Jul 17 Python
python异常触发及自定义异常类解析
Aug 06 Python
为什么说Python可以实现所有的算法
Oct 04 Python
Python换行与不换行的输出实例
Feb 19 Python
Python GUI编程学习笔记之tkinter事件绑定操作详解
Mar 30 Python
什么是python的自省
Jun 21 Python
python 写一个文件分发小程序
Dec 05 Python
python获取天气接口给指定微信好友发天气预报
Dec 28 Python
全网最详细的PyCharm+Anaconda的安装过程图解
Jan 25 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
yii2缓存Caching基本用法示例
2016/07/18 PHP
PHP设计模式之组合模式定义与应用示例
2020/02/01 PHP
js下利用控制器载入对应脚本
2010/07/17 Javascript
千分位数字格式化(用逗号隔开 代码已做了修改 支持0-9位逗号隔开)的JS代码
2013/12/05 Javascript
使用JavaScript获取电池状态的方法
2014/05/03 Javascript
浅析javascript的间隔调用和延时调用
2014/11/12 Javascript
三个js循环的关键字示例(for与while)
2016/02/16 Javascript
Javascript的表单验证-揭开正则表达式的面纱
2016/03/18 Javascript
js 将图片连接转换成base64格式的简单实例
2016/08/10 Javascript
Angularjs中使用轮播图指令swiper
2017/05/30 Javascript
js封装成插件的步骤方法
2017/09/11 Javascript
js+canvas实现滑动拼图验证码功能
2018/03/26 Javascript
React如何解决fetch跨域请求时session失效问题
2018/11/02 Javascript
详解JavaScript的内存空间、赋值和深浅拷贝
2019/04/17 Javascript
layui 点击重置按钮, select 并没有被重置的解决方法
2019/09/03 Javascript
JavaScript中break、continue和return的用法区别实例分析
2020/03/02 Javascript
[43:33]EG vs Spirit Supermajor 败者组 BO3 第一场 6.4
2018/06/05 DOTA
[00:19]CN DOTA NEVER DIE!VG夺冠rOtK接受采访
2019/12/23 DOTA
[08:54]DOTA2-DPC中国联赛 正赛 Aster vs LBZS 选手采访
2021/03/11 DOTA
python计算N天之后日期的方法
2015/03/31 Python
浅谈Python中的数据类型
2015/05/05 Python
python+pandas生成指定日期和重采样的方法
2018/04/11 Python
python:按行读入,排序然后输出的方法
2019/07/20 Python
浏览器实现移动端高性能css3动画(开启gpu加速)
2013/12/23 HTML / CSS
仪器仪表检测毕业生自荐信
2013/10/31 职场文书
高中毕业的自我鉴定
2013/12/09 职场文书
大学团支书的自我评价分享
2013/12/14 职场文书
就职演讲稿范文
2014/05/19 职场文书
司机工作自我鉴定
2014/09/19 职场文书
授权委托书(法人单位用)
2014/09/29 职场文书
2014年节能降耗工作总结
2014/12/11 职场文书
创业计划书之密室逃脱
2019/11/08 职场文书
ConstraintValidator类如何实现自定义注解校验前端传参
2021/06/18 Java/Android
python scrapy简单模拟登录的代码分析
2021/07/21 Python
分析SQL窗口函数之聚合窗口函数
2022/04/21 Oracle
基于redis+lua进行限流的方法
2022/07/23 Redis