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安装mysql-python简明笔记(ubuntu环境)
Jun 25 Python
用Python将mysql数据导出成json的方法
Aug 21 Python
python 获取微信好友列表的方法(微信web)
Feb 21 Python
python matplotlib画图库学习绘制常用的图
Mar 19 Python
通过selenium抓取某东的TT购买记录并分析趋势过程解析
Aug 15 Python
你还在@微信官方?聊聊Python生成你想要的微信头像
Sep 25 Python
Python之Numpy的超实用基础详细教程
Oct 23 Python
在python3中实现更新界面
Feb 21 Python
DataFrame.groupby()所见的各种用法详解
Jun 14 Python
Python 调用C++封装的进一步探索交流
Mar 04 Python
教你用python控制安卓手机
May 13 Python
Python可变与不可变数据和深拷贝与浅拷贝
Apr 06 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 读取文件的正确方法
2009/04/29 PHP
《PHP编程最快明白》第五讲:php目录、文件操作
2010/11/01 PHP
thinkPHP5.0框架引入Traits功能实例分析
2017/03/18 PHP
PHP中通过getopt解析GNU C风格命令行选项
2019/11/18 PHP
使用js简单实现了tree树菜单
2013/11/20 Javascript
jQuery学习笔记之toArray()
2014/06/09 Javascript
【JS+CSS3】实现带预览图幻灯片效果的示例代码
2016/03/17 Javascript
JS重载实现方法分析
2016/12/16 Javascript
完美解决spring websocket自动断开连接再创建引发的问题
2017/03/02 Javascript
利用jQuery+localStorage实现一个简易的计时器示例代码
2017/12/25 jQuery
JS/CSS实现字符串单词首字母大写功能
2019/09/03 Javascript
vue 解决遍历对象显示的顺序不对问题
2019/11/07 Javascript
[02:38]DOTA2英雄基础教程 噬魂鬼
2014/01/03 DOTA
下载给定网页上图片的方法
2014/02/18 Python
[原创]windows下Anaconda的安装与配置正解(Anaconda入门教程)
2018/04/05 Python
解决Python一行输出不显示的问题
2018/12/03 Python
在python中pandas读文件,有中文字符的方法
2018/12/12 Python
解决pyinstaller打包发布后的exe文件打开控制台闪退的问题
2019/06/21 Python
python的移位操作实现详解
2019/08/21 Python
解决python gdal投影坐标系转换的问题
2020/01/17 Python
在python3中使用shuffle函数要注意的地方
2020/02/28 Python
如何用 Python 制作一个迷宫游戏
2021/02/25 Python
CSS3自定义滚动条样式 ::webkit-scrollbar的示例代码详解
2020/06/01 HTML / CSS
巴西最大的珠宝连锁店:Vivara
2019/04/18 全球购物
市政施工员自我鉴定
2014/01/15 职场文书
商业房地产广告语
2014/03/13 职场文书
音乐学专业求职信
2014/07/22 职场文书
资产运营委托书范本
2014/10/16 职场文书
2016教师给学生的毕业寄语
2015/12/04 职场文书
高中生物教学反思
2016/02/20 职场文书
高效课堂教学反思
2016/02/24 职场文书
原生CSS实现文字无限轮播的通用方法
2021/03/30 HTML / CSS
Python函数式编程中itertools模块详解
2021/09/15 Python
HTML+JS实现在线朗读器
2022/02/15 Javascript
世界十大评分最高的动漫,CLANNAD上榜,第八赚足人们眼泪
2022/03/18 日漫
gtx1650怎么样 gtx1650显卡相当于什么级别
2022/04/08 数码科技