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追加元素到列表的方法
Jul 28 Python
带你了解python装饰器
Jun 15 Python
基于python中pygame模块的Linux下安装过程(详解)
Nov 09 Python
python3大文件解压和基本操作
Dec 15 Python
理解python中生成器用法
Dec 20 Python
Django中更改默认数据库为mysql的方法示例
Dec 05 Python
解决Numpy中sum函数求和结果维度的问题
Dec 06 Python
PyTorch 解决Dataset和Dataloader遇到的问题
Jan 08 Python
浅谈keras的深度模型训练过程及结果记录方式
Jan 24 Python
Python开发之pip安装及使用方法详解
Feb 21 Python
python爬取招聘要求等信息实例
Nov 20 Python
python 通过pip freeze、dowload打离线包及自动安装的过程详解(适用于保密的离线环境
Dec 14 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中动态调用函数的方法
2015/03/16 PHP
两种php给图片加水印的实现代码
2020/04/18 PHP
PHP实现的AES加密、解密封装类与用法示例
2018/08/02 PHP
10个基于jQuery或JavaScript的WYSIWYG 编辑器整理
2010/05/06 Javascript
js关闭模态窗口刷新父页面或跳转页面
2012/12/13 Javascript
js汉字转拼音实现代码
2013/02/06 Javascript
jquery实现背景墙聚光灯效果示例分享
2014/03/02 Javascript
yepnope.js使用详解及示例分享
2014/06/23 Javascript
jQuery入门介绍之基础知识
2015/01/13 Javascript
Javascript中的匿名函数与封装介绍
2015/03/15 Javascript
javascript实现获取服务器时间
2015/05/19 Javascript
详解JavaScript中的4种类型识别方法
2015/09/14 Javascript
js编写贪吃蛇的小游戏
2020/08/24 Javascript
关于JavaScript限制字数的输入框的那些事
2016/08/14 Javascript
node.js入门教程之querystring模块的使用方法
2017/02/27 Javascript
JavaScript拖动层Div代码
2017/03/01 Javascript
vuejs实现本地数据的筛选分页功能思路详解
2017/11/15 Javascript
BootStrap table实现表格行拖拽效果
2018/12/01 Javascript
element-ui多文件上传的实现示例
2019/04/10 Javascript
Vue中消息横向滚动时setInterval清不掉的问题及解决方法
2019/08/23 Javascript
JavaScript如何实现图片处理与合成
2020/05/29 Javascript
微信小程序拖拽排序列表的示例代码
2020/07/08 Javascript
JavaScript实现消消乐的源代码
2021/01/12 Javascript
用Python进行TCP网络编程的教程
2015/04/29 Python
python通过Windows下远程控制Linux系统
2018/06/20 Python
Python3.5面向对象编程图文与实例详解
2019/04/24 Python
Python搭建Spark分布式集群环境
2019/07/05 Python
python 二维矩阵转三维矩阵示例
2019/11/30 Python
基于HTML5超酷摄像头(HTML5 webcam)拍照功能实现代码
2012/12/13 HTML / CSS
杭州龙健科技笔试题.net部分笔试题
2016/01/24 面试题
房地产销售经理岗位职责
2014/01/01 职场文书
公司担保书范文
2014/05/21 职场文书
励志演讲稿800字
2014/08/21 职场文书
群众路线教育实践活动个人对照检查材料思想汇报(社区班子)
2014/10/06 职场文书
2016年秋季趣味运动会开幕词
2016/03/04 职场文书
nginx location优先级的深入讲解
2021/03/31 Servers