python 图片格式转换产生的锯齿问题
来源:互联网 发布:java开源b2b商城系统 编辑:程序博客网 时间:2024/06/01 09:36
这几天一直在帮一个学妹做毕业设计,用深度学习的方法来做遥感图像分类。原来准备将图像分为:林地、道路、裸地、建筑、草地、水域这6个部分,这6部分对应的颜色分别为:
1. 林地:红色 (255, 0, 0) 0xFF0000
2. 道路:黄色 (255, 255, 0) 0xFFFF00
3. 裸地:紫红 (255, 0, 255) 0xFF00FF
4. 建筑:青色 (0, 255, 255) 0x00FFFF
5. 草地:绿色 (0, 255, 0) 0x00FF00
6. 水域:蓝色 (0, 0, 255) 0x0000FF
由于感觉林地、裸地、草地难以区分。即使是强大的深度学习,在样本量不足的情况下,也难以学习到好的特征。于是,想写个脚本把林地、裸地与草地进行合并。
同时,由于使用的是AlexNet,训练图像为python
脚本工具将图像全都resize
到
之后,通过如下matlab
代码将图像中的林地、裸地与草地合并,方法很简单,就是如果图像是裸地的紫红
clear;clc;close all;line = (1:224);column = (1:224);img = imread('/Users/chenxinpeng/Documents/MATLAB/superpixel-sowerby/groundtruth_png_resize224/Classification90.png');R=img(:,:,1);G=img(:,:,2);B=img(:,:,3);for i = line for j = column %将紫红色的(255,0,255)裸地转变为红色的(255,0,0)林地 if(R(i,j) == 255 && G(i,j) == 0 && B(i,j) == 255) B(i,j) = 0; end %将绿色的(0,255,0)草地转变为红色的(255,0,0)林地 if(R(i,j) == 0 && G(i,j) == 255 && B(i,j) == 0) R(i,j) = 255; G(i,j) = 0; end endendimg2(:,:,1) = R;img2(:,:,2) = G;img2(:,:,3) = B;%img2.show()imwrite(img2,'/Users/chenxinpeng/Documents/MATLAB/superpixel-sowerby/4class_groundtruth_png_resize224/Classification90.png')
但是我发现,经过这段代码,仍有部分不能转换到红色
可以明显看到,原先紫红色裸地部分还有边缘区域没有转换为红色。
我将原来的图像放大:
可以发现,每种颜色的边缘区有混合像元,那么原因也找到了。就是我进行resize
操作的时候,原先纯色像元由于某种原因混合了。
怎么避免呢,这是我原先resize
操作的代码:
from PIL import Imageimport matplotlib.pyplot as pltimport osimport globHeight = 224 #Required Height for resizeWidth = 224 #Required Width for resizeoutdir = '/path/to/output/your/directory'#/path/to/output/your/directory/for/readimageList = sorted(glob.glob('/media/chenxp/Datadisk/labelsample/groundtruth_png/*.png'))for item in imageList: img = Image.open(item) temp = os.path.basename(item) img = img.resize((Height,Width),Image.ANTIALIAS) img.save(os.path.join(outdir,temp))
我原先以为产生混合像元是无法避免的,于是都开始想其他办法了。
突然,我想到可resize
代码里的这么一句话:img = img.resize((Height,Width),Image.ANTIALIAS)
。从这个网站,我发现,Image.ANTIALIAS
这句话的意思是Image.ANTIALIAS参数表示新生成的图片消除锯齿,我将后面这个参数取消掉。发现既能够成功的resize
,也不会产生混合像元。
再将林地、裸地与草地进行混合,能够很完美的混合了:
图中黄色的区域是道路,问题解决了。接下来就是训练对比结果了。
- python 图片格式转换产生的锯齿问题
- python中图片格式的转换
- ffmpeg图片格式转换缩放的问题sws_scale
- 图片格式转换问题
- 实际试验遇到的一些python问题,包括图片格式转换,python中调用linux命令行,用python画图等等。
- 使用python进行图片格式转换
- base64图片格式的转换
- PNG转换成GIF出现锯齿问题的解决方案
- 消除位图缩放产生的锯齿
- windowsphone7下图片格式的转换
- 批量转换图片格式,Shell 和 Python版
- photoshop常见的锯齿问题
- 抗锯齿的性能问题
- pdf转换成图片格式的转换方法
- 转换图片格式
- 转换图片格式
- 图片格式转换
- 图片格式转换
- 【连载】关系型数据库是如何工作的?(1) - 前言
- PKU 3013 Big Christmas Tree 最短路 spfa
- ubuntu 16.04 编译opencv3.1,opencv多版本切换
- 一些统计特征与统计图的绘制-matlab
- 【HUSTOJ】1019: 求1+1/2+1/3+...+1/n
- python 图片格式转换产生的锯齿问题
- Count of Smaller Numbers After Self
- IOS杂记
- 面向对象设计原则——单一职责原则
- 数据结构(c)——赫夫曼树与赫夫曼编码
- Mac的使用小技巧
- Leetcode 257. Binary Tree Paths
- redis学习笔记(2)---链表adlist
- 基本百度地图制作