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生成随机数的方法
Jan 14 Python
使用wxpython实现的一个简单图片浏览器实例
Jul 10 Python
python监控进程脚本
Apr 12 Python
django rest framework 数据的查找、过滤、排序的示例
Jun 25 Python
python判断完全平方数的方法
Nov 13 Python
Python使用sorted对字典的key或value排序
Nov 15 Python
Python中字符串与编码示例代码
May 20 Python
Python Django切换MySQL数据库实例详解
Jul 16 Python
原生python实现knn分类算法
Oct 24 Python
如何基于python实现画不同品种的樱花树
Jan 03 Python
python Polars库的使用简介
Apr 21 Python
PyCharm 安装与使用配置教程(windows,mac通用)
May 12 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中mkdir()函数的权限问题分析
2016/09/24 PHP
PHP+AJAX 投票器功能
2017/11/11 PHP
PHP微信H5支付开发实例
2018/07/25 PHP
PHP利用Mysql锁解决高并发的方法
2018/09/04 PHP
JSON JQUERY模板实现说明
2010/07/03 Javascript
JQuery里面的几种选择器 查找满足条件的元素$("#控件ID")
2011/08/23 Javascript
同一页面多个商品倒计时JS 基于面向对象的javascript
2012/02/16 Javascript
JavaScript高级程序设计阅读笔记(五) ECMAScript中的运算符(一)
2012/02/27 Javascript
jquery创建表格(自动增加表格)代码分享
2013/12/25 Javascript
javascript 数组操作详解
2015/01/29 Javascript
javascript作用域问题实例分析
2015/07/13 Javascript
jquery实现手机号码选号的方法
2015/07/31 Javascript
微信小程序(六):列表上拉加载下拉刷新示例
2017/01/13 Javascript
vue-cli+webpack记事本项目创建
2017/04/01 Javascript
vue中动态设置meta标签和title标签的方法
2018/07/11 Javascript
实用Javascript调试技巧分享(小结)
2019/06/18 Javascript
angular6开发steps步骤条组件
2019/07/04 Javascript
Vue使用lodop实现打印小结
2019/07/06 Javascript
jQuery实现鼠标移入显示蒙版效果
2020/01/11 jQuery
Python实现将数据写入netCDF4中的方法示例
2018/08/30 Python
python3 字符串/列表/元组(str/list/tuple)相互转换方法及join()函数的使用
2019/04/03 Python
Django 使用easy_thumbnails压缩上传的图片方法
2019/07/26 Python
Python 动态导入对象,importlib.import_module()的使用方法
2019/08/28 Python
pytorch实现onehot编码转为普通label标签
2020/01/02 Python
Python random库使用方法及异常处理方案
2020/03/02 Python
pandas to_excel 添加颜色操作
2020/07/14 Python
pycharm激活码免费分享适用最新pycharm2020.2.3永久激活
2020/11/25 Python
Python基于Webhook实现github自动化部署
2020/11/28 Python
浅谈Html5中视频 音频标签 进度条的问题
2016/07/26 HTML / CSS
Finishline官网:美国一家领先的运动品牌鞋类、服装零售商
2016/07/20 全球购物
世界上第一个水枕头:Mediflow
2018/12/06 全球购物
中专自我鉴定
2014/02/05 职场文书
工程类专业自荐信范文
2014/03/09 职场文书
移风易俗倡议书
2014/04/15 职场文书
软件项目实施计划书
2014/05/02 职场文书
投资合作意向书范本
2015/05/08 职场文书