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使用BeautifulSoup分页网页中超链接的方法
Apr 04 Python
python实现机械分词之逆向最大匹配算法代码示例
Dec 13 Python
对IPython交互模式下的退出方法详解
Feb 16 Python
python网络爬虫 CrawlSpider使用详解
Sep 27 Python
python多线程并发及测试框架案例
Oct 15 Python
python GUI库图形界面开发之PyQt5布局控件QGridLayout详细使用方法与实例
Mar 06 Python
python中urllib.request和requests的使用及区别详解
May 05 Python
keras绘制acc和loss曲线图实例
Jun 15 Python
keras中的History对象用法
Jun 19 Python
python批量处理多DNS多域名的nslookup解析实现
Jun 28 Python
python pip如何手动安装二进制包
Sep 30 Python
python中字典增加和删除使用方法
Sep 30 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
PHP中用hash实现的数组
2011/07/17 PHP
PHP编程风格规范分享
2014/01/15 PHP
thinkphp框架实现删除和批量删除
2016/06/29 PHP
PHP实现截取中文字符串不出现?号的解决方法
2016/12/29 PHP
PHP编程快速实现数组去重的方法详解
2017/07/22 PHP
JQuery 表格操作(交替显示、拖动表格行、选择行等)
2009/07/29 Javascript
EXTJS FORM HIDDEN TEXTFIELD 赋值 使用value不好用的问题
2011/04/16 Javascript
js delete 用法(删除对象属性及变量)
2014/08/24 Javascript
Jquery判断form表单数据是否变化
2016/03/30 Javascript
js仿3366小游戏选字游戏
2016/04/14 Javascript
Bootstrap常用组件学习(整理)
2017/03/24 Javascript
vue-router实现webApp切换页面动画效果代码
2017/05/25 Javascript
浅谈JS封闭函数、闭包、内置对象
2017/07/18 Javascript
nodejs之get/post请求的几种方式小结
2017/07/26 NodeJs
JavaScrip数组去重操作实例小结
2019/06/20 Javascript
vue组件库的在线主题编辑器的实现思路
2020/04/03 Javascript
[01:31:22]Ti4 循环赛第四日附加赛LGD vs Mouz
2014/07/13 DOTA
Python3实现的腾讯微博自动发帖小工具
2013/11/11 Python
matplotlib绘制符合论文要求的图片实例(必看篇)
2017/06/02 Python
Python动刷新抢12306火车票的代码(附源码)
2018/01/24 Python
PyQt5每天必学之工具提示功能
2018/04/19 Python
python中类的属性和方法介绍
2018/11/27 Python
python numpy 按行归一化的实例
2019/01/21 Python
Python绘图Matplotlib之坐标轴及刻度总结
2019/06/28 Python
Django使用中间键实现csrf认证详解
2019/07/22 Python
python flask搭建web应用教程
2019/11/19 Python
解决Tensorflow占用GPU显存问题
2020/02/03 Python
Django 删除upload_to文件的步骤
2020/03/30 Python
基于django2.2连oracle11g解决版本冲突的问题
2020/07/02 Python
HTML5的结构和语义(4):语义性的内联元素
2008/10/17 HTML / CSS
浅析图片上传及canvas压缩的流程
2020/06/10 HTML / CSS
团员学习总结的自我评价范文
2013/10/14 职场文书
工程造价专业大学生职业生涯规划书
2014/01/18 职场文书
综治工作汇报材料
2014/10/27 职场文书
SQL Server2019数据库备份与还原脚本,数据库可批量备份
2021/11/20 SQL Server
vue本地构建热更新卡顿的问题“75 advanced module optimization”完美解决方案
2022/08/05 Vue.js