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中类的继承代码实例
Oct 28 Python
python获取目录下所有文件的方法
Jun 01 Python
Python常见异常分类与处理方法
Jun 04 Python
Python 自动化表单提交实例代码
Jun 08 Python
python中装饰器级连的使用方法示例
Sep 29 Python
Django中间件工作流程及写法实例代码
Feb 06 Python
Python发送http请求解析返回json的实例
Mar 26 Python
Python面向对象之静态属性、类方法与静态方法分析
Aug 24 Python
selenium使用chrome浏览器测试(附chromedriver与chrome的对应关系表)
Nov 29 Python
Python散点图与折线图绘制过程解析
Nov 30 Python
详解python tkinter 图片插入问题
Sep 03 Python
python自动化发送邮件实例讲解
Jan 04 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 array_push 数组函数
2009/12/26 PHP
解析二进制流接口应用实例 pack、unpack、ord 函数使用方法
2013/06/18 PHP
Laravel框架数据库CURD操作、连贯操作总结
2014/09/03 PHP
php中in_array函数用法探究
2014/11/25 PHP
php生成txt文件实例代码介绍
2016/04/28 PHP
Laravel5.1 框架控制器基础用法实例分析
2020/01/04 PHP
jquery text,radio,checkbox,select操作实现代码
2009/07/09 Javascript
extJs 常用到的增,删,改,查操作代码
2009/12/28 Javascript
日期处理的js库(迷你版)--自建js库总结
2011/11/21 Javascript
JavaScript实现表格排序方法
2013/06/14 Javascript
通过length属性判断jquery对象是否存在
2013/10/18 Javascript
js简单的表格添加行和删除行操作示例
2014/03/31 Javascript
Vue2.0使用过程常见的一些问题总结学习
2017/04/10 Javascript
jquery replace方法去空格
2017/05/08 jQuery
vue项目总结之文件夹结构配置详解
2017/12/13 Javascript
基于mpvue的小程序项目搭建的步骤
2018/05/22 Javascript
小程序实现列表点赞功能
2018/11/02 Javascript
JS如何在数组指定位置插入元素
2020/03/10 Javascript
详解JS函数防抖
2020/06/05 Javascript
Vue.js桌面端自定义滚动条组件之美化滚动条VScroll
2020/12/01 Vue.js
Python实现的百度站长自动URL提交小工具
2014/06/27 Python
Python面向对象编程中关于类和方法的学习笔记
2016/06/30 Python
玩转python selenium鼠标键盘操作(ActionChains)
2020/04/12 Python
python算法演练_One Rule 算法(详解)
2017/05/17 Python
python爬虫入门教程--优雅的HTTP库requests(二)
2017/05/25 Python
浅谈Django中的数据库模型类-models.py(一对一的关系)
2018/05/30 Python
Python之dict(或对象)与json之间的互相转化实例
2018/06/05 Python
使用python采集Excel表中某一格数据
2020/05/14 Python
HTML5 解决苹果手机不能自动播放音乐问题
2017/12/27 HTML / CSS
前厅部经理岗位职责范文
2014/02/04 职场文书
服务承诺书范文
2014/05/19 职场文书
建筑院校毕业生求职信
2014/06/13 职场文书
教师个人自我剖析材料
2014/09/29 职场文书
感恩老师主题班会
2015/08/12 职场文书
如何使JavaScript休眠或等待
2021/04/27 Javascript
oracle连接ODBC sqlserver数据源的详细步骤
2021/07/25 Oracle