-
Notifications
You must be signed in to change notification settings - Fork 0
/
imPreProcPNG.py
115 lines (95 loc) · 3.42 KB
/
imPreProcPNG.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
# -*- coding: utf-8 -*-
"""
Created on Mon Mar 25 12:37:31 2019
# If this is too slow to load the images, you can try
'conda install -c nanshe pylibtiff' and use his package.
fastest loading is with the arcgis tif lib stuff. for satellite images
@author: morga
"""
import os
from PIL import Image
from PIL import ImageOps
from PIL import ImageFilter
def getImageList(imDir):
imList=[]
os.chdir(imDir)
for root, dirs, files in os.walk(imDir):
for file in files:
if file.endswith('.tif') and len(file)==28:
imName = os.path.join(root, file)
imList.append(imName)
print(imName)
return imList
def loadImage(fileName):
Image.MAX_IMAGE_PIXELS=None
imraw = Image.open(fileName)
return imraw
def invertImage(inputImage):
midImage = inputImage.convert('L')
invImage = ImageOps.invert(midImage)
finImage = invImage.convert('P')
return finImage
def processImage(inputImage, filtSize=3):
midImage = inputImage.convert('L')
filtImage = midImage.filter(ImageFilter.MedianFilter(size=filtSize))
invImage = ImageOps.invert(filtImage)
return invImage
def saveImage(inputImage, fileName='out.png'):
inputImage.save(fileName, "PNG")
return 0
def medianFilterImage(inputImage):
filtImage = inputImage.filter(ImageFilter.MedianFilter(size=2))
return filtImage
def autoBC(inputImage):
print("insert code for auto brightness and contrast")
def procDir(inDir):
imList = getImageList(inDir)
#imListTrim = [s for s in imList if len(s)==28]
for curIm in imList:
#print(curIm)
outName = curIm[:-3]+'png'
exists = os.path.isfile(outName)
#exists = 0
if exists:
print('skippingFile')
#print(outName + ' already converted')
else:
imraw = loadImage(curIm)
finImage = processImage(imraw)
outName = curIm[:-3]+'png'
#if exists:
# os.remove(outName)
saveImage(finImage, outName)
#dirList = os.listdir('Y:\\Active\\Data\\AT\\Morgan Lab\\MasterRaw\\ixQ\\ixQ_waf008_IL_04nm_testAF')
#dirList = dirList[4:]
dirList = os.listdir('/mnt/main/data/MasterRaw/ixQ/ixQ_waf007_IL_04nm_slow')
dirList = dirList[5:]
srcDir = '/mnt/main/data/MasterRaw/ixQ/ixQ_waf007_IL_04nm_slow/'
for sliceDir in dirList:
inDir = os.path.join(srcDir,sliceDir)
procDir(inDir)
dstDir = '/mnt/main/data/MasterRaw/ixQ/ixQ_waf007_IL_04nm_slow/'
#dirList = os.listdir('/media/morganlab/Shadowfax/MasterRaw/ixQ/ixQ_waf007_IL_04nm')
#
#srcDir = '/media/morganlab/Shadowfax/MasterRaw/ixQ/ixQ_waf007_IL_04nm/'
#dirList = dirList[4:]
#for sliceDir in dirList:
# inDir = os.path.join(srcDir,sliceDir)
# procDir(inDir)
#
#
#dirList = os.listdir('/media/morganlab/Shadowfax/MasterRaw/ixQ/ixQ_waf009_IL_04nm_slow')
#dirList = dirList[3:]
#srcDir = '/media/morganlab/Shadowfax/MasterRaw/ixQ/ixQ_waf009_IL_04nm_slow/'
for sliceDir in dirList:
inDir = os.path.join(srcDir,sliceDir)
procDir(inDir)
os.chdir(inDir)
for root, dirs, files in os.walk(inDir):
for file in files:
if file.endswith(".tif"):
inName = os.path.join(root, file)
print(inName)
imraw = loadImage(inName)
iminv = invertImage(imraw)
saveImage(iminv, inName)