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中使用matplotlib模块绘制数据图的示例
May 04 Python
python函数形参用法实例分析
Aug 04 Python
基于Python实现一个简单的银行转账操作
Mar 06 Python
Django中login_required装饰器的深入介绍
Nov 24 Python
python顺序的读取文件夹下名称有序的文件方法
Jul 11 Python
mac PyCharm添加Python解释器及添加package路径的方法
Oct 29 Python
Python自定义一个类实现字典dict功能的方法
Jan 19 Python
详解pyinstaller selenium python3 chrome打包问题
Oct 18 Python
使用Python进行防病毒免杀解析
Dec 13 Python
Python实现初始化不同的变量类型为空值
Jun 02 Python
Python实现天气查询软件
Jun 07 Python
python pandas 解析(读取、写入)CSV 文件的操作方法
Dec 24 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操作MongoDB的技术总结
2013/06/02 PHP
php代码书写习惯优化小结
2013/06/20 PHP
php 强制下载文件实现代码
2013/10/28 PHP
采用header定义为文件然后readfile下载(隐藏下载地址)
2014/01/31 PHP
PHP使用gearman进行异步的邮件或短信发送操作详解
2020/02/27 PHP
二行代码解决全部网页木马
2008/03/28 Javascript
JavaScript 组件之旅(四):测试 JavaScript 组件
2009/10/28 Javascript
juqery 学习之四 筛选过滤
2010/11/30 Javascript
js在输入框屏蔽按键,只能键入数字的示例代码
2014/01/03 Javascript
JavaScript中的console.log()函数详细介绍
2014/12/29 Javascript
javascript判断图片是否加载完成的方法推荐
2016/05/13 Javascript
JavaScript浏览器对象之一Window对象详解
2016/06/03 Javascript
javascript url几种编码方式详解
2016/06/06 Javascript
Linux CentOS系统下安装node.js与express的方法
2017/04/01 Javascript
input框中自动展示当前日期yyyy/mm/dd的实现方法
2017/07/06 Javascript
Angular 2.0+ 的数据绑定的实现示例
2017/08/09 Javascript
Angular实现下载安装包的功能代码分享
2017/09/05 Javascript
WebPack配置vue多页面的技巧
2018/05/15 Javascript
js 实现ajax发送步骤过程详解
2019/07/25 Javascript
vue动态绘制四分之三圆环图效果
2019/09/03 Javascript
Vue项目vscode 安装eslint插件的方法(代码自动修复)
2020/04/15 Javascript
Vue使用axios引起的后台session不同操作
2020/08/14 Javascript
[54:28]EG vs OG 2019国际邀请赛小组赛 BO2 第一场 8.16
2019/08/18 DOTA
[06:59]DOTA2-DPC中国联赛3月7日Recap集锦
2021/03/11 DOTA
python网络编程示例(客户端与服务端)
2014/04/24 Python
python实现按行切分文本文件的方法
2016/04/18 Python
基于asyncio 异步协程框架实现收集B站直播弹幕
2016/09/11 Python
python实现计算器功能
2019/10/31 Python
《美丽的田园》教学反思
2014/03/01 职场文书
小学绿色学校申报材料
2014/08/23 职场文书
优秀党员先进材料
2014/12/18 职场文书
事业单位工作人员2015年度思想工作总结
2015/10/15 职场文书
民事调解协议书
2016/03/21 职场文书
解决Golang time.Parse和time.Format的时区问题
2021/04/29 Golang
上帝为你开了一扇窗之Tkinter常用函数详解
2021/06/02 Python
详解JavaScript中Arguments对象用途
2021/08/30 Javascript