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使用wmi模块获取windows下硬盘信息的方法
May 15 Python
Python中用于检查英文字母大写的isupper()方法
May 19 Python
使用Python的Twisted框架编写非阻塞程序的代码示例
May 25 Python
利用Python找出序列中出现最多的元素示例代码
Dec 08 Python
python实现逆序输出一个数字的示例讲解
Jun 25 Python
解决PyCharm import torch包失败的问题
Oct 13 Python
Python补齐字符串长度的实例
Nov 15 Python
Python 变量的创建过程详解
Sep 02 Python
pyftplib中文乱码问题解决方案
Jan 11 Python
pycharm中使用request和Pytest进行接口测试的方法
Jul 31 Python
next在python中返回迭代器的实例方法
Dec 15 Python
详解appium自动化测试工具(monitor、uiautomatorviewer)
Jan 27 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 版本]
2007/03/20 PHP
php sprintf()函数让你的sql操作更安全
2008/07/23 PHP
深入phpMyAdmin的安装与配置的详细步骤
2013/05/07 PHP
[原创]php逐行读取txt文件写入数组的方法
2015/07/02 PHP
php将服务端的文件读出来显示在web页面实例
2016/10/31 PHP
如何修改Laravel中url()函数生成URL的根地址
2017/08/11 PHP
jquery设置元素的readonly和disabled的写法
2013/09/22 Javascript
JS获取键盘上任意按键的值(实例代码)
2013/11/12 Javascript
javascript获取checkbox复选框获取选中的选项
2014/08/12 Javascript
JS模拟bootstrap下拉菜单效果实例
2016/06/17 Javascript
Laydate时间组件在火狐浏览器下有多时间输入框时只能给第一个输入框赋值的解决方法
2016/08/18 Javascript
jQuery使用EasyUi实现三级联动下拉框效果
2017/03/08 Javascript
Ajax高级笔记 JavaScript高级程序设计笔记
2017/06/22 Javascript
Vue.js 2.5新特性介绍(推荐)
2017/10/24 Javascript
快速搭建React的环境步骤详解
2017/11/06 Javascript
微信小程序日期选择器实例代码
2018/07/18 Javascript
vue-cli3.0+element-ui上传组件el-upload的使用
2018/12/03 Javascript
详解从react转职到vue开发的项目准备
2019/01/14 Javascript
详解JavaScript 的变量
2019/03/08 Javascript
Vue js 的生命周期(看了就懂)(推荐)
2019/03/29 Javascript
Vue 自定义指令实现一键 Copy功能
2019/09/16 Javascript
JavaScript实现随机点名小程序
2020/10/29 Javascript
[01:55]2014DOTA2国际邀请赛快报:国土生病 紧急去医院治疗
2014/07/10 DOTA
python提示No module named images的解决方法
2014/09/29 Python
Python工程师面试必备25条知识点
2018/01/17 Python
Ubuntu下Python2与Python3的共存问题
2018/10/31 Python
python算法与数据结构之单链表的实现代码
2019/06/27 Python
Python 操作 ElasticSearch的完整代码
2019/08/04 Python
基于TensorBoard中graph模块图结构分析
2020/02/15 Python
pyautogui自动化控制鼠标和键盘操作的步骤
2020/04/01 Python
英国打印机墨盒销售网站:Ink Factory
2019/10/07 全球购物
2014年五一活动策划方案
2014/03/15 职场文书
给领导的感谢信范文
2015/01/23 职场文书
2015年高中班主任工作总结
2015/04/30 职场文书
经费申请报告范文
2015/05/18 职场文书
MySQL EXPLAIN输出列的详细解释
2021/05/12 MySQL