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 爬虫学习笔记之正则表达式
Sep 21 Python
python爬虫入门教程--利用requests构建知乎API(三)
May 25 Python
python2.7到3.x迁移指南
Feb 01 Python
Python获取指定文件夹下的文件名的方法
Feb 06 Python
python kmeans聚类简单介绍和实现代码
Feb 23 Python
Python在for循环中更改list值的方法【推荐】
Aug 17 Python
详解python中sort排序使用
Mar 23 Python
python 数据库查询返回list或tuple实例
May 15 Python
浅析Python迭代器的高级用法
Jul 16 Python
如何利用python进行时间序列分析
Aug 04 Python
python爬虫beautifulsoup解析html方法
Dec 07 Python
5个pandas调用函数的方法让数据处理更加灵活自如
Apr 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
我的论坛源代码(十)
2006/10/09 PHP
php+js实现裁剪任意形状图片
2018/10/31 PHP
Yii2框架操作数据库的方法分析【以mysql为例】
2019/05/27 PHP
关于laravel后台模板laravel-admin select框的使用详解
2019/10/03 PHP
求得div 下 img的src地址的js代码
2007/02/28 Javascript
javascript之ESC(第二类混淆)
2007/05/06 Javascript
jQuery下扩展插件和拓展函数的写法(匿名函数使用的典型例子)
2010/10/20 Javascript
jQuery1.6 使用方法一
2011/11/23 Javascript
javascript克隆对象深度介绍
2012/11/20 Javascript
jquery实现类似淘宝星星评分功能实例
2014/09/12 Javascript
js对字符的验证方法汇总
2015/02/04 Javascript
JavaScrip常见的一些算法总结
2015/12/28 Javascript
jquery仿QQ登录账号选择下拉框效果
2016/03/22 Javascript
AngularJS表达式讲解及示例代码
2016/08/16 Javascript
微信小程序开发之圆形菜单 仿建行圆形菜单实例
2016/12/12 Javascript
jQuery实现扑克正反面翻牌效果
2017/03/10 Javascript
AngularJS实用基础知识_入门必备篇(推荐)
2017/07/10 Javascript
JS实现点击循环切换显示内容的方法
2017/10/19 Javascript
浅谈React 服务器端渲染的使用
2018/05/08 Javascript
angularjs的单选框+ng-repeat的实现方法
2018/09/12 Javascript
node 标准输入流和输出流代码实例
2019/09/19 Javascript
webpack安装配置与常见使用过程详解(结合vue)
2020/06/01 Javascript
详解Node.JS模块 process
2020/08/31 Javascript
[01:00:04]DOTA2上海特级锦标赛B组小组赛#1 Alliance VS Spirit第二局
2016/02/26 DOTA
Python使用剪切板的方法
2017/06/06 Python
Python实现完整的事务操作示例
2017/06/20 Python
自学python的建议和周期预算
2019/01/30 Python
python集合是否可变总结
2019/06/20 Python
python打印9宫格、25宫格等奇数格 满足横竖斜相加和相等
2019/07/19 Python
在python中利用dict转json按输入顺序输出内容方式
2020/02/27 Python
CSS实现聊天气泡效果
2020/04/26 HTML / CSS
HTML5边玩边学(1)画布实现方法
2010/09/21 HTML / CSS
英国手工制作的现代与经典的沙发和床:Love Your Home
2020/09/26 全球购物
PHP如何调用MYSQL存储过程
2014/05/30 面试题
护理目标管理责任书
2014/07/25 职场文书
任命书格式模板
2015/09/22 职场文书