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 相关文章推荐
使用Python3中的gettext模块翻译Python源码以支持多语言
Mar 31 Python
Python通过90行代码搭建一个音乐搜索工具
Jul 29 Python
Python对list列表结构中的值进行去重的方法总结
May 07 Python
python万年历实现代码 含运行结果
May 20 Python
python机器学习之随机森林(七)
Mar 26 Python
对pycharm 修改程序运行所需内存详解
Dec 03 Python
对Python3 序列解包详解
Feb 16 Python
Python实现使用request模块下载图片demo示例
May 24 Python
基于多进程中APScheduler重复运行的解决方法
Jul 22 Python
基于python 微信小程序之获取已存在模板消息列表
Aug 05 Python
Python3标准库之dbm UNIX键-值数据库问题
Mar 24 Python
基于Python把网站域名解析成ip地址
May 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
php中选择什么接口(mysql、mysqli)访问mysql
2013/02/06 PHP
PHP输出XML到页面的3种方法详解
2013/06/06 PHP
phpmailer在服务器上不能正常发送邮件的解决办法
2014/07/08 PHP
js removeChild 障眼法 可能出现的错误
2009/10/06 Javascript
jquery.tmpl JQuery模板插件
2011/10/10 Javascript
JavaScript高级程序设计 读书笔记之八 Function类及闭包
2012/02/27 Javascript
JavaScript实现维吉尼亚(Vigenere)密码算法实例
2013/11/22 Javascript
jQuery在ul中显示某个li索引号的方法
2015/03/17 Javascript
jQuery使用toggleClass方法动态添加删除Class样式的方法
2015/03/26 Javascript
js判断输入字符串是否为空、空格、null的方法总结
2016/06/14 Javascript
JS实现屏蔽网页右键复制及ctrl+c复制的方法【2种方法】
2016/09/04 Javascript
JavaScript获取短信验证码(周期性)
2016/12/29 Javascript
bootstrap中的 form表单属性role="form"的作用详解
2017/01/20 Javascript
JavaScript中捕获与冒泡详解及实例
2017/02/03 Javascript
关于Vue在ie10下空白页的debug小结
2018/05/02 Javascript
在vue中使用express-mock搭建mock服务的方法
2018/11/07 Javascript
小程序如何支持使用 async/await详解
2019/09/12 Javascript
JavaScript缓动动画函数的封装方法
2020/11/25 Javascript
python使用beautifulsoup从爱奇艺网抓取视频播放
2014/01/23 Python
Python编程中对文件和存储器的读写示例
2016/01/25 Python
python实现图书馆研习室自动预约功能
2018/04/27 Python
python提取包含关键字的整行数据方法
2018/12/11 Python
Python docx库用法示例分析
2019/02/16 Python
使用遗传算法求二元函数的最小值
2020/02/11 Python
纯CSS改变webkit内核浏览器的滚动条样式
2014/04/17 HTML / CSS
英国第一豪华护肤品牌:Elemis
2017/10/12 全球购物
村主任“四风”问题个人对照检查材料思想汇报
2014/10/02 职场文书
2014年测量员工作总结
2014/12/12 职场文书
搞笑老公保证书
2015/02/26 职场文书
大学推普周活动总结
2015/05/07 职场文书
毕业论文致谢信
2015/05/14 职场文书
初中英语教学随笔
2015/08/15 职场文书
小学中队长竞选稿
2015/11/20 职场文书
2016年质量月活动总结报告
2016/04/05 职场文书
求职自荐信该如何书写?
2019/06/24 职场文书
python获取带有返回值的多线程
2022/05/02 Python