6147 lines (6146 with data), 144.1 kB
{
"cells": [
{
"cell_type": "heading",
"metadata": {
"collapsed": false
},
"level": 1,
"source": [
"The Notebook for Defect Detection Image Augumentation"
]
},
{
"cell_type": "heading",
"metadata": {},
"level": 2,
"source": [
"Path"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"dataPath = \".Data_postiveOnly\""
]
},
{
"cell_type": "heading",
"metadata": {},
"level": 2,
"source": [
"Import"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"import imgaug as ia\n",
"from imgaug import augmenters as iaa\n",
"import skimage.io\n",
"import errno\n",
"import numpy as np\n",
"import skimage.color as color\n",
"import matplotlib.pyplot as plt\n",
"import numpy as np\n",
"import os\n",
"from skimage.color import gray2rgb"
]
},
{
"cell_type": "heading",
"metadata": {},
"level": 2,
"source": [
"Helper Functions"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"def bboxSetupInImage(datapath,txtFile,img):\n",
" \"\"\"\n",
" This is the function that reads in the bounding box files and then using imgaug to set up the bounding box on images\n",
" \n",
" :param txtFile: the txt file that store bounding box information \n",
" :param img: the image file variable to represent the img to be plotted bounding box on it \n",
" :return bbs: the image with bounding box in it\n",
" \"\"\"\n",
" with open( datapath + 'bounding_boxes/' + txtFile,'r') as f:\n",
" content = [line.rstrip('\\n') for line in f]\n",
" iaBBoxList = []\n",
" for bbline in content:\n",
" bbox = bbline.strip().split()\n",
" #print(bbox[1])\n",
" if len(bbox) == 5:\n",
" iaBBoxList.append(ia.BoundingBox(\n",
" x1=float(bbox[2]), \n",
" y1=float(bbox[1]), \n",
" x2=float(bbox[4]), \n",
" y2=float(bbox[3]),\n",
" label = bbox[0]))\n",
" bbs = ia.BoundingBoxesOnImage(iaBBoxList, shape=img.shape)\n",
" return bbs"
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {},
"outputs": [],
"source": [
"def saveAugbbox2TXT(txtFile,bbs):\n",
" \"\"\"\n",
" This is the function that save the augmented bounding box files into ChainerCV bbox format\n",
" \n",
" :param txtFile: the txt file that want to save\n",
" :param bbs: bounding box lists \n",
" \"\"\"\n",
" with open('' + txtFile,'w') as f:\n",
" for i in range(len(bbs.bounding_boxes)):\n",
" bb = bbs_aug.bounding_boxes[i]\n",
" # print(\"%s %.2f %.2f %.2f %.2f\"%(bb.label,bb.y1,bb.x1,bb.y2,bb.x2))\n",
" f.write(\"%s %.2f %.2f %.2f %.2f\\n\"%(bb.label,bb.y1,bb.x1,bb.y2,bb.x2))"
]
},
{
"cell_type": "code",
"execution_count": 28,
"metadata": {},
"outputs": [],
"source": [
"def getImageList(imageTXT):\n",
" \"\"\"\n",
" Function to loop the testing images for test\n",
" :param imageTXT: the txt that stores the \n",
" :return: imageFileList: the list contains all the original test image list\n",
" \"\"\"\n",
" imageFileList = list()\n",
" with open(imageTXT,'r') as f:\n",
" lines = f.readlines()\n",
" for line in lines:\n",
" imageFileList.append(line.strip())\n",
" return imageFileList"
]
},
{
"cell_type": "code",
"execution_count": 29,
"metadata": {},
"outputs": [],
"source": [
"def createFolder(folderName):\n",
" \"\"\"\n",
" Safely create folder when needed\n",
" \n",
" :param folderName : the directory that you want to safely create\n",
" :return: None\n",
" \"\"\"\n",
" if not os.path.exists(folderName):\n",
" try:\n",
" os.makedirs(folderName)\n",
" except OSError as exc: # Guard against race condition\n",
" if exc.errno != errno.EEXIST:\n",
" raise"
]
},
{
"cell_type": "heading",
"metadata": {},
"level": 2,
"source": [
"Gaussian Noise"
]
},
{
"cell_type": "code",
"execution_count": 30,
"metadata": {
"collapsed": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"0501_300kx_1nm_clhaadf3_0006.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"0501_300kx_1nm_clhaadf3_0008.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"0501_300kx_1nm_clhaadf3_0012.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"0501_300kx_1nm_clhaadf3_0016.jpg\n0501_300kx_1nm_clhaadf3_0018.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"0501_300kx_1nm_clhaadf3_0020.jpg\n0501_300kx_1nm_clhaadf3_0022.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"0501_300kx_1nm_clhaadf3_0024.jpg\n0501_300kx_1nm_clhaadf3_0026.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"0501_300kx_1nm_clhaadf3_0030.jpg\n0501_300kx_1nm_clhaadf3_0031.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"0501_300kx_1nm_clhaadf3_0034.jpg\n0501_300kx_1nm_clhaadf3_0036.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"0501_300kx_1nm_clhaadf3_0040.jpg\n0501_300kx_1nm_clhaadf3_0044.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"0501_300kx_1nm_clhaadf3_0046.jpg\n0501_300kx_1nm_clhaadf3_0048.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"0501_300kx_1nm_clhaadf3_0050.jpg\n200kV_500kx_p2nm_8cmCL_grain1_0002.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"200kV_500kx_p2nm_8cmCL_grain1_0002_n.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"200kV_500kx_p2nm_8cmCL_grain1_0004_n.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"200kV_500kx_p2nm_8cmCL_grain1_0048 - Copy.jpg\n200kV_500kx_p2nm_8cmCL_grain1_0050 - Copy.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"200kV_500kx_p2nm_8cmCL_grain1_0052 - Copy.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"200kV_500kx_p2nm_8cmCL_grain1_0054 - Copy.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"200kV_500kx_p2nm_8cmCL_grain1_0058 - Copy.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"200kV_500kx_p2nm_8cmCL_grain1_0060 - Copy.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"200kV_500kx_p2nm_8cmCL_grain1_0062 - Copy.jpg\n200kV_500kx_p2nm_8cmCL_grain1_0064 - Copy.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"200kV_500kx_p2nm_8cmCL_grain1_0066 - Copy.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"200kV_500kx_p2nm_8cmCL_grain1_0068 - Copy.jpg\n200kV_500kx_p2nm_8cmCL_grain1_0070 - Copy.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"200kV_500kx_p2nm_8cmCL_grain1_0072 - Copy.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"200kV_500kx_p2nm_8cmCL_grain1_0074 - Copy.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"200kV_500kx_p2nm_8cmCL_grain1_0076 - Copy.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"200kV_500kx_p2nm_8cmCL_grain1_0078 - Copy.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"200kV_500kx_p2nm_8cmCL_grain1_0080 - Copy.jpg\n200kV_500kx_p2nm_8cmCL_grain1_0084 - Copy.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"200kV_500kx_p2nm_8cmCL_grain1_0086 - Copy.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"200kV_500kx_p2nm_8cmCL_grain1_0090 - Copy.jpg\n200kV_500kx_p2nm_8cmCL_grain1_0092 - Copy.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"200kV_500kx_p2nm_8cmCL_grain1_0109.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"200kV_500kx_p2nm_8cmCL_grain1_0111.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"200kV_500kx_p2nm_8cmCL_grain1_0129.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"200kV_500kx_p2nm_8cmCL_grain2_0010.jpg\n200kV_500kx_p2nm_8cmCL_grain2_0012.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"200kV_500kx_p2nm_8cmCL_grain3_4_0258.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"2501_300kx_1nm_clhaadf3_0032.jpg\n2501_300kx_1nm_clhaadf3_0034.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"2501_300kx_1nm_clhaadf3_0036.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"2501_300kx_1nm_clhaadf3_0038.jpg\n2501_300kx_1nm_clhaadf3_0040.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"2501_300kx_1nm_clhaadf3_0042.jpg\n2501_300kx_1nm_clhaadf3_0044.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"2501_300kx_1nm_clhaadf3_0046.jpg\n2501_300kx_1nm_clhaadf3_0048.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"2501_300kx_1nm_clhaadf3_0050.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"2501_300kx_1nm_clhaadf3_0052.jpg\n2501_300kx_1nm_clhaadf3_0054.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"2ROI_100kx_4100CL_foil1.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"3ROI_100kx_4100CL_foil1.jpg\n4ROI_100kx_4100CL_foil1.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"5401_300kx_1nm_clhaadf3_0004.jpg\n5401_300kx_1nm_clhaadf3_0006.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"5401_300kx_1nm_clhaadf3_0016.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"5401_300kx_1nm_clhaadf3_0018.jpg\n5401_300kx_1nm_clhaadf3_0022.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"5401_300kx_1nm_clhaadf3_0024.jpg\n5401_300kx_1nm_clhaadf3_0026.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"5401_300kx_1nm_clhaadf3_0030.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"5ROI_100kx_4100CL_foil1 copy.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"6ROI_100kx_4100CL_foil1 copy.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"7ROI_100kx_4100CL_foil1 copy.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"9ROI_100kx_4100CL_foil1.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"BF X500K, 01 (2).jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"BF X500K, 01 (3).jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"BF X500K, 02 (2).jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"BF X500K, 03 (2).jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"BF X500K, 04.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"BF X500K, 05 (2).jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"BF X500K, 05.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"BF X500K, 06 (3).jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"BF X500K, 06.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"BF X500K, 07 (2).jpg\nBF X500K, 08 (2).jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"BF X500K, 08 (3).jpg\nBF X500K, 08.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"BF X500K, 10 (2).jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"BF X500K, 10 (3).jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"BF X500K, 10.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"BF X500K, 11 (2).jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"BF X500K, 11 (3).jpg\nBF X500K, 11.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"BF X500K, 12 (2).jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"BF X500K, 12 (3).jpg\nBF X500K, 12.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"BF X500K, 13 (3).jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"BF X500K, 14.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"BF X500K, 15.jpg\nBF X500K, 16.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"K713_300kx_store4_grid1_0005.jpg\nK713_300kx_store4_grid1_0007.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"K713_300kx_store4_grid1_0009.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"K713_300kx_store4_grid1_0011.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"K713_300kx_store4_grid1_0013.jpg\nK713_300kx_store4_grid1_0015.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"K713_300kx_store4_grid1_0017.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"K713_300kx_store4_grid1_0019.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"dalong2.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"dalong3.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"g1_backonzone_GBtowardsfrom_0005.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"g1_frontonzone_GBtowardsback_0006.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"g2_midonzone_GBtowardsfront_0005.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"g2_midonzone_GBtowardsfront_0034.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"g2_midonzone_GBtowardsmmiddle_0003.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"g2_midonzone_GBtowardsmmiddle_0005.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi1_500kx_0p5nm_haadf1_0001.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi1_500kx_0p5nm_haadf1_0003.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi1_500kx_0p5nm_haadf1_0005.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi1_500kx_0p5nm_haadf1_0007.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi1_500kx_0p5nm_haadf1_0009.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi1_500kx_0p5nm_haadf1_0011.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi1_500kx_0p5nm_haadf1_0013.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi1_500kx_0p5nm_haadf1_0015.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi1_500kx_0p5nm_haadf1_0017.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi1_500kx_0p5nm_haadf1_0019.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi1_500kx_0p5nm_haadf1_0021.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi1_500kx_0p5nm_haadf1_0023.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi1_500kx_0p5nm_haadf1_0027.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi1_500kx_0p5nm_haadf1_0029.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi1_500kx_0p5nm_haadf1_0031.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi2_500kx_0p5nm_haadf1_0035.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi2_500kx_0p5nm_haadf1_0037.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi2_500kx_0p5nm_haadf1_0039.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi2_500kx_0p5nm_haadf1_0041.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi2_500kx_0p5nm_haadf1_0044.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi2_500kx_0p5nm_haadf1_0045.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi2_500kx_0p5nm_haadf1_0049.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi2_500kx_0p5nm_haadf1_0051.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi2_500kx_0p5nm_haadf1_0053.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi2_500kx_0p5nm_haadf1_0055.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi2_500kx_0p5nm_haadf1_0057.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi2_500kx_0p5nm_haadf1_0059.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi2_500kx_0p5nm_haadf1_0061.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi2_500kx_0p5nm_haadf1_0063.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi2_500kx_0p5nm_haadf1_0065.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi2_500kx_0p5nm_haadf1_0067.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi2_500kx_0p5nm_haadf1_0069.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"BF X500K, 05 (3).jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"0501_300kx_1nm_clhaadf3_0038.jpg\n"
]
}
],
"source": [
"\n",
"##################################################\n",
"# 1. Define data augmentation operations\n",
"##################################################\n",
"\n",
"trainImageTxtFile = dataPath + \"trainimages.txt\"\n",
"imageList = getImageList(trainImageTxtFile)\n",
"\n",
"current_operation = \"GaussianNoise\"\n",
"\n",
"# Add gaussian noise.\n",
"# For 50% of all images, we sample the noise once per pixel.\n",
"# For the other 50% of all images, we sample the noise per pixel AND\n",
"# channel. This can change the color (not only brightness) of the\n",
"# pixels.\n",
" \n",
"from imgaug import augmenters as iaa\n",
"ia.seed(1)\n",
"seq = iaa.Sequential([\n",
" iaa.AdditiveGaussianNoise(loc=0, \n",
" scale=(0.0, 0.05*255), \n",
" per_channel=0.5)\n",
"])\n",
"\n",
"# seq = iaa.Sequential([ \n",
"# # Adjust contrast by scaling each pixel value to (I_ij/255.0)**gamma.\n",
"# # Values in the range gamma=(0.5, 2.0) seem to be sensible.\n",
"# iaa.GammaContrast((0.5, 1.5))\n",
"# ])\n",
"\n",
"# Make our sequence deterministic.\n",
"# We can now apply it to the image and then to the BBs and it will\n",
"# lead to the same augmentations.\n",
"# IMPORTANT: Call this once PER BATCH, otherwise you will always get the exactly same augmentations for every batch!\n",
"seq_det = seq.to_deterministic()\n",
"\n",
"##################################################\n",
"# 2. loop through images\n",
"##################################################\n",
"\n",
"for img in imageList:\n",
" print(img)\n",
" # Grayscale images must have shape (height, width, 1) each.\n",
" #print(os.listdir(dataPath+'images/'))\n",
" currentimage = skimage.io.imread(dataPath+'images/'+img).astype(np.uint8)\n",
" # gray2rgb() simply duplicates the gray values over the three color channels.\n",
" currentimage = color.gray2rgb(currentimage)\n",
" bbs = bboxSetupInImage(dataPath , img.rstrip('.jpg') + '.txt',currentimage)\n",
" # Augment BBs and images.\n",
" # As we only have one image and list of BBs, we use\n",
" # [image] and [bbs] to turn both into lists (batches) for the# functions and then [0] to reverse that. In a real experiment, your\n",
" # variables would likely already be lists.\n",
" image_aug = seq_det.augment_images([currentimage])[0]\n",
" bbs_aug = seq_det.augment_bounding_boxes([bbs])[0]\n",
" augImgFolder = current_operation + \"Images\"\n",
" augTxTFolder = current_operation + \"TXT\"\n",
" createFolder(augImgFolder)\n",
" createFolder(augTxTFolder)\n",
" # Save aug images and bboxes\n",
" skimage.io.imsave(augImgFolder + '/'+\n",
" img.rstrip('.jpg') + \n",
" '_' + current_operation +\n",
" '.jpg'\n",
" ,image_aug)\n",
" saveAugbbox2TXT(augTxTFolder+ '/'+ \n",
" img.rstrip('.jpg') + \n",
" '_'+ current_operation +\n",
" '.txt',bbs_aug)\n",
" # image with BBs before/after augmentation (shown below)\n",
" # image_before = bbs.draw_on_image(currentimage, thickness=2)\n",
" # image_after = bbs_aug.draw_on_image(image_aug, \n",
" # thickness=2, color=[0, 0, 255])\n",
" # image with BBs before/after augmentation (shown below)\n",
" # plot and save figures before and after data augmentations\n",
" #skimage.io.imshow(image_before)\n",
" #skimage.io.imshow(image_after)\n",
" # for i in range(len(bbs.bounding_boxes)):\n",
" # before = bbs.bounding_boxes[i]\n",
" # after = bbs_aug.bounding_boxes[i]\n",
" # print(\"BB %d: (%.4f, %.4f, %.4f, %.4f) -> (%.4f, %.4f, %.4f, %.4f)\" % (\n",
" # i,\n",
" # before.x1, before.y1, before.x2, before.y2,\n",
" # after.x1, after.y1, after.x2, after.y2)\n",
" # )"
]
},
{
"cell_type": "heading",
"metadata": {},
"level": 1,
"source": [
"GaussianBlur"
]
},
{
"cell_type": "code",
"execution_count": 31,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"0501_300kx_1nm_clhaadf3_0006.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"0501_300kx_1nm_clhaadf3_0008.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"0501_300kx_1nm_clhaadf3_0012.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"0501_300kx_1nm_clhaadf3_0016.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"0501_300kx_1nm_clhaadf3_0018.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"0501_300kx_1nm_clhaadf3_0020.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"0501_300kx_1nm_clhaadf3_0022.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"0501_300kx_1nm_clhaadf3_0024.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"0501_300kx_1nm_clhaadf3_0026.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"0501_300kx_1nm_clhaadf3_0030.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"0501_300kx_1nm_clhaadf3_0031.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"0501_300kx_1nm_clhaadf3_0034.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"0501_300kx_1nm_clhaadf3_0036.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"0501_300kx_1nm_clhaadf3_0040.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"0501_300kx_1nm_clhaadf3_0044.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"0501_300kx_1nm_clhaadf3_0046.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"0501_300kx_1nm_clhaadf3_0048.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"0501_300kx_1nm_clhaadf3_0050.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"200kV_500kx_p2nm_8cmCL_grain1_0002.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"200kV_500kx_p2nm_8cmCL_grain1_0002_n.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"200kV_500kx_p2nm_8cmCL_grain1_0004_n.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"200kV_500kx_p2nm_8cmCL_grain1_0048 - Copy.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"200kV_500kx_p2nm_8cmCL_grain1_0050 - Copy.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"200kV_500kx_p2nm_8cmCL_grain1_0052 - Copy.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"200kV_500kx_p2nm_8cmCL_grain1_0054 - Copy.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"200kV_500kx_p2nm_8cmCL_grain1_0058 - Copy.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"200kV_500kx_p2nm_8cmCL_grain1_0060 - Copy.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"200kV_500kx_p2nm_8cmCL_grain1_0062 - Copy.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"200kV_500kx_p2nm_8cmCL_grain1_0064 - Copy.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"200kV_500kx_p2nm_8cmCL_grain1_0066 - Copy.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"200kV_500kx_p2nm_8cmCL_grain1_0068 - Copy.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"200kV_500kx_p2nm_8cmCL_grain1_0070 - Copy.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"200kV_500kx_p2nm_8cmCL_grain1_0072 - Copy.jpg\n200kV_500kx_p2nm_8cmCL_grain1_0074 - Copy.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"200kV_500kx_p2nm_8cmCL_grain1_0076 - Copy.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"200kV_500kx_p2nm_8cmCL_grain1_0078 - Copy.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"200kV_500kx_p2nm_8cmCL_grain1_0080 - Copy.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"200kV_500kx_p2nm_8cmCL_grain1_0084 - Copy.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"200kV_500kx_p2nm_8cmCL_grain1_0086 - Copy.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"200kV_500kx_p2nm_8cmCL_grain1_0090 - Copy.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"200kV_500kx_p2nm_8cmCL_grain1_0092 - Copy.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"200kV_500kx_p2nm_8cmCL_grain1_0109.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"200kV_500kx_p2nm_8cmCL_grain1_0111.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"200kV_500kx_p2nm_8cmCL_grain1_0129.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"200kV_500kx_p2nm_8cmCL_grain2_0010.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"200kV_500kx_p2nm_8cmCL_grain2_0012.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"200kV_500kx_p2nm_8cmCL_grain3_4_0258.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"2501_300kx_1nm_clhaadf3_0032.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"2501_300kx_1nm_clhaadf3_0034.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"2501_300kx_1nm_clhaadf3_0036.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"2501_300kx_1nm_clhaadf3_0038.jpg\n2501_300kx_1nm_clhaadf3_0040.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"2501_300kx_1nm_clhaadf3_0042.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"2501_300kx_1nm_clhaadf3_0044.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"2501_300kx_1nm_clhaadf3_0046.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"2501_300kx_1nm_clhaadf3_0048.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"2501_300kx_1nm_clhaadf3_0050.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"2501_300kx_1nm_clhaadf3_0052.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"2501_300kx_1nm_clhaadf3_0054.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"2ROI_100kx_4100CL_foil1.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"3ROI_100kx_4100CL_foil1.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"4ROI_100kx_4100CL_foil1.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"5401_300kx_1nm_clhaadf3_0004.jpg\n5401_300kx_1nm_clhaadf3_0006.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"5401_300kx_1nm_clhaadf3_0016.jpg\n5401_300kx_1nm_clhaadf3_0018.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"5401_300kx_1nm_clhaadf3_0022.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"5401_300kx_1nm_clhaadf3_0024.jpg\n5401_300kx_1nm_clhaadf3_0026.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"5401_300kx_1nm_clhaadf3_0030.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"5ROI_100kx_4100CL_foil1 copy.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"6ROI_100kx_4100CL_foil1 copy.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"7ROI_100kx_4100CL_foil1 copy.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"9ROI_100kx_4100CL_foil1.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"BF X500K, 01 (2).jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"BF X500K, 01 (3).jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"BF X500K, 02 (2).jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"BF X500K, 03 (2).jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"BF X500K, 04.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"BF X500K, 05 (2).jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"BF X500K, 05.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"BF X500K, 06 (3).jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"BF X500K, 06.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"BF X500K, 07 (2).jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"BF X500K, 08 (2).jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"BF X500K, 08 (3).jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"BF X500K, 08.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"BF X500K, 10 (2).jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"BF X500K, 10 (3).jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"BF X500K, 10.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"BF X500K, 11 (2).jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"BF X500K, 11 (3).jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"BF X500K, 11.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"BF X500K, 12 (2).jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"BF X500K, 12 (3).jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"BF X500K, 12.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"BF X500K, 13 (3).jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"BF X500K, 14.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"BF X500K, 15.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"BF X500K, 16.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"K713_300kx_store4_grid1_0005.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"K713_300kx_store4_grid1_0007.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"K713_300kx_store4_grid1_0009.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"K713_300kx_store4_grid1_0011.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"K713_300kx_store4_grid1_0013.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"K713_300kx_store4_grid1_0015.jpg\nK713_300kx_store4_grid1_0017.jpg"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"K713_300kx_store4_grid1_0019.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"dalong2.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"dalong3.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"g1_backonzone_GBtowardsfrom_0005.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"g1_frontonzone_GBtowardsback_0006.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"g2_midonzone_GBtowardsfront_0005.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"g2_midonzone_GBtowardsfront_0034.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"g2_midonzone_GBtowardsmmiddle_0003.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"g2_midonzone_GBtowardsmmiddle_0005.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi1_500kx_0p5nm_haadf1_0001.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi1_500kx_0p5nm_haadf1_0003.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi1_500kx_0p5nm_haadf1_0005.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi1_500kx_0p5nm_haadf1_0007.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi1_500kx_0p5nm_haadf1_0009.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi1_500kx_0p5nm_haadf1_0011.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi1_500kx_0p5nm_haadf1_0013.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi1_500kx_0p5nm_haadf1_0015.jpg\ngrid1_roi1_500kx_0p5nm_haadf1_0017.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi1_500kx_0p5nm_haadf1_0019.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi1_500kx_0p5nm_haadf1_0021.jpg\ngrid1_roi1_500kx_0p5nm_haadf1_0023.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi1_500kx_0p5nm_haadf1_0027.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi1_500kx_0p5nm_haadf1_0029.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi1_500kx_0p5nm_haadf1_0031.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi2_500kx_0p5nm_haadf1_0035.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi2_500kx_0p5nm_haadf1_0037.jpg\ngrid1_roi2_500kx_0p5nm_haadf1_0039.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi2_500kx_0p5nm_haadf1_0041.jpg\ngrid1_roi2_500kx_0p5nm_haadf1_0044.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi2_500kx_0p5nm_haadf1_0045.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi2_500kx_0p5nm_haadf1_0049.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi2_500kx_0p5nm_haadf1_0051.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi2_500kx_0p5nm_haadf1_0053.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi2_500kx_0p5nm_haadf1_0055.jpg\ngrid1_roi2_500kx_0p5nm_haadf1_0057.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi2_500kx_0p5nm_haadf1_0059.jpg\ngrid1_roi2_500kx_0p5nm_haadf1_0061.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi2_500kx_0p5nm_haadf1_0063.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi2_500kx_0p5nm_haadf1_0065.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi2_500kx_0p5nm_haadf1_0067.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi2_500kx_0p5nm_haadf1_0069.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"BF X500K, 05 (3).jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"0501_300kx_1nm_clhaadf3_0038.jpg\n"
]
}
],
"source": [
"##################################################\n",
"# 1. Define data augmentation operations\n",
"##################################################\n",
"\n",
"trainImageTxtFile = dataPath + \"trainimages.txt\"\n",
"imageList = getImageList(trainImageTxtFile)\n",
"\n",
"current_operation = \"GaussianBlur\"\n",
"\n",
"# blur images with a sigma of 0 to 3.0 \n",
"from imgaug import augmenters as iaa\n",
"ia.seed(1)\n",
"seq = iaa.Sequential([\n",
" iaa.GaussianBlur(sigma=(0, 3)) \n",
"])\n",
"\n",
"# seq = iaa.Sequential([ \n",
"# # Adjust contrast by scaling each pixel value to (I_ij/255.0)**gamma.\n",
"# # Values in the range gamma=(0.5, 2.0) seem to be sensible.\n",
"# iaa.GammaContrast((0.5, 1.5))\n",
"# ])\n",
"\n",
"# Make our sequence deterministic.\n",
"# We can now apply it to the image and then to the BBs and it will\n",
"# lead to the same augmentations.\n",
"# IMPORTANT: Call this once PER BATCH, otherwise you will always get the exactly same augmentations for every batch!\n",
"seq_det = seq.to_deterministic()\n",
"\n",
"##################################################\n",
"# 2. loop through images\n",
"##################################################\n",
"\n",
"for img in imageList:\n",
" print(img)\n",
" # Grayscale images must have shape (height, width, 1) each.\n",
" #print(os.listdir(dataPath+'images/'))\n",
" currentimage = skimage.io.imread(dataPath+'images/'+img).astype(np.uint8)\n",
" # gray2rgb() simply duplicates the gray values over the three color channels.\n",
" currentimage = color.gray2rgb(currentimage)\n",
" bbs = bboxSetupInImage(dataPath , img.rstrip('.jpg') + '.txt',currentimage)\n",
" # Augment BBs and images.\n",
" # As we only have one image and list of BBs, we use\n",
" # [image] and [bbs] to turn both into lists (batches) for the# functions and then [0] to reverse that. In a real experiment, your\n",
" # variables would likely already be lists.\n",
" image_aug = seq_det.augment_images([currentimage])[0]\n",
" bbs_aug = seq_det.augment_bounding_boxes([bbs])[0]\n",
" augImgFolder = current_operation + \"Images\"\n",
" augTxTFolder = current_operation + \"TXT\"\n",
" createFolder(augImgFolder)\n",
" createFolder(augTxTFolder)\n",
" # Save aug images and bboxes\n",
" skimage.io.imsave(augImgFolder + '/'+\n",
" img.rstrip('.jpg') + \n",
" '_' + current_operation +\n",
" '.jpg'\n",
" ,image_aug)\n",
" saveAugbbox2TXT(augTxTFolder+ '/'+ \n",
" img.rstrip('.jpg') + \n",
" '_'+ current_operation +\n",
" '.txt',bbs_aug)\n",
" # image with BBs before/after augmentation (shown below)\n",
" # image_before = bbs.draw_on_image(currentimage, thickness=2)\n",
" # image_after = bbs_aug.draw_on_image(image_aug, \n",
" # thickness=2, color=[0, 0, 255])\n",
" # image with BBs before/after augmentation (shown below)\n",
" # plot and save figures before and after data augmentations\n",
" #skimage.io.imshow(image_before)\n",
" #skimage.io.imshow(image_after)\n",
" # for i in range(len(bbs.bounding_boxes)):\n",
" # before = bbs.bounding_boxes[i]\n",
" # after = bbs_aug.bounding_boxes[i]\n",
" # print(\"BB %d: (%.4f, %.4f, %.4f, %.4f) -> (%.4f, %.4f, %.4f, %.4f)\" % (\n",
" # i,\n",
" # before.x1, before.y1, before.x2, before.y2,\n",
" # after.x1, after.y1, after.x2, after.y2)\n",
" # )"
]
},
{
"cell_type": "heading",
"metadata": {},
"level": 2,
"source": [
"change brightness"
]
},
{
"cell_type": "code",
"execution_count": 32,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"0501_300kx_1nm_clhaadf3_0006.jpg\n0501_300kx_1nm_clhaadf3_0008.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"0501_300kx_1nm_clhaadf3_0012.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"0501_300kx_1nm_clhaadf3_0016.jpg\n0501_300kx_1nm_clhaadf3_0018.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"0501_300kx_1nm_clhaadf3_0020.jpg\n0501_300kx_1nm_clhaadf3_0022.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"0501_300kx_1nm_clhaadf3_0024.jpg\n0501_300kx_1nm_clhaadf3_0026.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"0501_300kx_1nm_clhaadf3_0030.jpg\n0501_300kx_1nm_clhaadf3_0031.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"0501_300kx_1nm_clhaadf3_0034.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"0501_300kx_1nm_clhaadf3_0036.jpg\n0501_300kx_1nm_clhaadf3_0040.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"0501_300kx_1nm_clhaadf3_0044.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"0501_300kx_1nm_clhaadf3_0046.jpg\n0501_300kx_1nm_clhaadf3_0048.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"0501_300kx_1nm_clhaadf3_0050.jpg\n200kV_500kx_p2nm_8cmCL_grain1_0002.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"200kV_500kx_p2nm_8cmCL_grain1_0002_n.jpg\n200kV_500kx_p2nm_8cmCL_grain1_0004_n.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"200kV_500kx_p2nm_8cmCL_grain1_0048 - Copy.jpg\n200kV_500kx_p2nm_8cmCL_grain1_0050 - Copy.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"200kV_500kx_p2nm_8cmCL_grain1_0052 - Copy.jpg\n200kV_500kx_p2nm_8cmCL_grain1_0054 - Copy.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"200kV_500kx_p2nm_8cmCL_grain1_0058 - Copy.jpg\n200kV_500kx_p2nm_8cmCL_grain1_0060 - Copy.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"200kV_500kx_p2nm_8cmCL_grain1_0062 - Copy.jpg\n200kV_500kx_p2nm_8cmCL_grain1_0064 - Copy.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"200kV_500kx_p2nm_8cmCL_grain1_0066 - Copy.jpg\n200kV_500kx_p2nm_8cmCL_grain1_0068 - Copy.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"200kV_500kx_p2nm_8cmCL_grain1_0070 - Copy.jpg\n200kV_500kx_p2nm_8cmCL_grain1_0072 - Copy.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"200kV_500kx_p2nm_8cmCL_grain1_0074 - Copy.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"200kV_500kx_p2nm_8cmCL_grain1_0076 - Copy.jpg\n200kV_500kx_p2nm_8cmCL_grain1_0078 - Copy.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"200kV_500kx_p2nm_8cmCL_grain1_0080 - Copy.jpg\n200kV_500kx_p2nm_8cmCL_grain1_0084 - Copy.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"200kV_500kx_p2nm_8cmCL_grain1_0086 - Copy.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"200kV_500kx_p2nm_8cmCL_grain1_0090 - Copy.jpg\n200kV_500kx_p2nm_8cmCL_grain1_0092 - Copy.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"200kV_500kx_p2nm_8cmCL_grain1_0109.jpg\n200kV_500kx_p2nm_8cmCL_grain1_0111.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"200kV_500kx_p2nm_8cmCL_grain1_0129.jpg\n200kV_500kx_p2nm_8cmCL_grain2_0010.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"200kV_500kx_p2nm_8cmCL_grain2_0012.jpg\n200kV_500kx_p2nm_8cmCL_grain3_4_0258.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"2501_300kx_1nm_clhaadf3_0032.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"2501_300kx_1nm_clhaadf3_0034.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"2501_300kx_1nm_clhaadf3_0036.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"2501_300kx_1nm_clhaadf3_0038.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"2501_300kx_1nm_clhaadf3_0040.jpg\n2501_300kx_1nm_clhaadf3_0042.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"2501_300kx_1nm_clhaadf3_0044.jpg\n2501_300kx_1nm_clhaadf3_0046.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"2501_300kx_1nm_clhaadf3_0048.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"2501_300kx_1nm_clhaadf3_0050.jpg\n2501_300kx_1nm_clhaadf3_0052.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"2501_300kx_1nm_clhaadf3_0054.jpg\n2ROI_100kx_4100CL_foil1.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"3ROI_100kx_4100CL_foil1.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"4ROI_100kx_4100CL_foil1.jpg\n5401_300kx_1nm_clhaadf3_0004.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"5401_300kx_1nm_clhaadf3_0006.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"5401_300kx_1nm_clhaadf3_0016.jpg\n5401_300kx_1nm_clhaadf3_0018.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"5401_300kx_1nm_clhaadf3_0022.jpg\n5401_300kx_1nm_clhaadf3_0024.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"5401_300kx_1nm_clhaadf3_0026.jpg\n5401_300kx_1nm_clhaadf3_0030.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"5ROI_100kx_4100CL_foil1 copy.jpg\n6ROI_100kx_4100CL_foil1 copy.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"7ROI_100kx_4100CL_foil1 copy.jpg\n9ROI_100kx_4100CL_foil1.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"BF X500K, 01 (2).jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"BF X500K, 01 (3).jpg\nBF X500K, 02 (2).jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"BF X500K, 03 (2).jpg\nBF X500K, 04.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"BF X500K, 05 (2).jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"BF X500K, 05.jpg\nBF X500K, 06 (3).jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"BF X500K, 06.jpg\nBF X500K, 07 (2).jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"BF X500K, 08 (2).jpg\nBF X500K, 08 (3).jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"BF X500K, 08.jpg\nBF X500K, 10 (2).jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"BF X500K, 10 (3).jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"BF X500K, 10.jpg\nBF X500K, 11 (2).jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"BF X500K, 11 (3).jpg\nBF X500K, 11.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"BF X500K, 12 (2).jpg\nBF X500K, 12 (3).jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"BF X500K, 12.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"BF X500K, 13 (3).jpg\nBF X500K, 14.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"BF X500K, 15.jpg\nBF X500K, 16.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"K713_300kx_store4_grid1_0005.jpg\nK713_300kx_store4_grid1_0007.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"K713_300kx_store4_grid1_0009.jpg\nK713_300kx_store4_grid1_0011.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"K713_300kx_store4_grid1_0013.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"K713_300kx_store4_grid1_0015.jpg\nK713_300kx_store4_grid1_0017.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"K713_300kx_store4_grid1_0019.jpg\ndalong2.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"dalong3.jpg\ng1_backonzone_GBtowardsfrom_0005.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"g1_frontonzone_GBtowardsback_0006.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"g2_midonzone_GBtowardsfront_0005.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"g2_midonzone_GBtowardsfront_0034.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"g2_midonzone_GBtowardsmmiddle_0003.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"g2_midonzone_GBtowardsmmiddle_0005.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi1_500kx_0p5nm_haadf1_0001.jpg\ngrid1_roi1_500kx_0p5nm_haadf1_0003.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi1_500kx_0p5nm_haadf1_0005.jpg\ngrid1_roi1_500kx_0p5nm_haadf1_0007.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi1_500kx_0p5nm_haadf1_0009.jpg\ngrid1_roi1_500kx_0p5nm_haadf1_0011.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi1_500kx_0p5nm_haadf1_0013.jpg\ngrid1_roi1_500kx_0p5nm_haadf1_0015.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi1_500kx_0p5nm_haadf1_0017.jpg\ngrid1_roi1_500kx_0p5nm_haadf1_0019.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi1_500kx_0p5nm_haadf1_0021.jpg\ngrid1_roi1_500kx_0p5nm_haadf1_0023.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi1_500kx_0p5nm_haadf1_0027.jpg\ngrid1_roi1_500kx_0p5nm_haadf1_0029.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi1_500kx_0p5nm_haadf1_0031.jpg\ngrid1_roi2_500kx_0p5nm_haadf1_0035.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi2_500kx_0p5nm_haadf1_0037.jpg\ngrid1_roi2_500kx_0p5nm_haadf1_0039.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi2_500kx_0p5nm_haadf1_0041.jpg\ngrid1_roi2_500kx_0p5nm_haadf1_0044.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi2_500kx_0p5nm_haadf1_0045.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi2_500kx_0p5nm_haadf1_0049.jpg\ngrid1_roi2_500kx_0p5nm_haadf1_0051.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi2_500kx_0p5nm_haadf1_0053.jpg\ngrid1_roi2_500kx_0p5nm_haadf1_0055.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi2_500kx_0p5nm_haadf1_0057.jpg\ngrid1_roi2_500kx_0p5nm_haadf1_0059.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi2_500kx_0p5nm_haadf1_0061.jpg\ngrid1_roi2_500kx_0p5nm_haadf1_0063.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi2_500kx_0p5nm_haadf1_0065.jpg\ngrid1_roi2_500kx_0p5nm_haadf1_0067.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi2_500kx_0p5nm_haadf1_0069.jpg\nBF X500K, 05 (3).jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"0501_300kx_1nm_clhaadf3_0038.jpg\n"
]
}
],
"source": [
"##################################################\n",
"# 1. Define data augmentation operations\n",
"##################################################\n",
"\n",
"trainImageTxtFile = dataPath + \"trainimages.txt\"\n",
"imageList = getImageList(trainImageTxtFile)\n",
"\n",
"current_operation = \"Brightness\"\n",
"\n",
"# Strengthen or weaken the contrast in each image. \n",
"from imgaug import augmenters as iaa\n",
"ia.seed(1)\n",
"seq = iaa.Sequential([\n",
" iaa.Multiply((1.2, 1.5))\n",
"])\n",
"\n",
"# seq = iaa.Sequential([ \n",
"# # Adjust contrast by scaling each pixel value to (I_ij/255.0)**gamma.\n",
"# # Values in the range gamma=(0.5, 2.0) seem to be sensible.\n",
"# iaa.GammaContrast((0.5, 1.5))\n",
"# ])\n",
"\n",
"# Make our sequence deterministic.\n",
"# We can now apply it to the image and then to the BBs and it will\n",
"# lead to the same augmentations.\n",
"# IMPORTANT: Call this once PER BATCH, otherwise you will always get the exactly same augmentations for every batch!\n",
"seq_det = seq.to_deterministic()\n",
"\n",
"##################################################\n",
"# 2. loop through images\n",
"##################################################\n",
"\n",
"for img in imageList:\n",
" print(img)\n",
" # Grayscale images must have shape (height, width, 1) each.\n",
" #print(os.listdir(dataPath+'images/'))\n",
" currentimage = skimage.io.imread(dataPath+'images/'+img).astype(np.uint8)\n",
" # gray2rgb() simply duplicates the gray values over the three color channels.\n",
" currentimage = color.gray2rgb(currentimage)\n",
" bbs = bboxSetupInImage(dataPath , img.rstrip('.jpg') + '.txt',currentimage)\n",
" # Augment BBs and images.\n",
" # As we only have one image and list of BBs, we use\n",
" # [image] and [bbs] to turn both into lists (batches) for the# functions and then [0] to reverse that. In a real experiment, your\n",
" # variables would likely already be lists.\n",
" image_aug = seq_det.augment_images([currentimage])[0]\n",
" bbs_aug = seq_det.augment_bounding_boxes([bbs])[0]\n",
" augImgFolder = current_operation + \"Images\"\n",
" augTxTFolder = current_operation + \"TXT\"\n",
" createFolder(augImgFolder)\n",
" createFolder(augTxTFolder)\n",
" # Save aug images and bboxes\n",
" skimage.io.imsave(augImgFolder + '/'+\n",
" img.rstrip('.jpg') + \n",
" '_' + current_operation +\n",
" '.jpg'\n",
" ,image_aug)\n",
" saveAugbbox2TXT(augTxTFolder+ '/'+ \n",
" img.rstrip('.jpg') + \n",
" '_'+ current_operation +\n",
" '.txt',bbs_aug)\n",
" # image with BBs before/after augmentation (shown below)\n",
" # image_before = bbs.draw_on_image(currentimage, thickness=2)\n",
" # image_after = bbs_aug.draw_on_image(image_aug, \n",
" # thickness=2, color=[0, 0, 255])\n",
" # image with BBs before/after augmentation (shown below)\n",
" # plot and save figures before and after data augmentations\n",
" #skimage.io.imshow(image_before)\n",
" #skimage.io.imshow(image_after)\n",
" # for i in range(len(bbs.bounding_boxes)):\n",
" # before = bbs.bounding_boxes[i]\n",
" # after = bbs_aug.bounding_boxes[i]\n",
" # print(\"BB %d: (%.4f, %.4f, %.4f, %.4f) -> (%.4f, %.4f, %.4f, %.4f)\" % (\n",
" # i,\n",
" # before.x1, before.y1, before.x2, before.y2,\n",
" # after.x1, after.y1, after.x2, after.y2)\n",
" # )"
]
},
{
"cell_type": "heading",
"metadata": {},
"level": 2,
"source": [
"Contrast Normalization"
]
},
{
"cell_type": "code",
"execution_count": 33,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"0501_300kx_1nm_clhaadf3_0006.jpg\n0501_300kx_1nm_clhaadf3_0008.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"0501_300kx_1nm_clhaadf3_0012.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"0501_300kx_1nm_clhaadf3_0016.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"0501_300kx_1nm_clhaadf3_0018.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"0501_300kx_1nm_clhaadf3_0020.jpg\n0501_300kx_1nm_clhaadf3_0022.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"0501_300kx_1nm_clhaadf3_0024.jpg\n0501_300kx_1nm_clhaadf3_0026.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"0501_300kx_1nm_clhaadf3_0030.jpg\n0501_300kx_1nm_clhaadf3_0031.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"0501_300kx_1nm_clhaadf3_0034.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"0501_300kx_1nm_clhaadf3_0036.jpg\n0501_300kx_1nm_clhaadf3_0040.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"0501_300kx_1nm_clhaadf3_0044.jpg\n0501_300kx_1nm_clhaadf3_0046.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"0501_300kx_1nm_clhaadf3_0048.jpg\n0501_300kx_1nm_clhaadf3_0050.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"200kV_500kx_p2nm_8cmCL_grain1_0002.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"200kV_500kx_p2nm_8cmCL_grain1_0002_n.jpg\n200kV_500kx_p2nm_8cmCL_grain1_0004_n.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"200kV_500kx_p2nm_8cmCL_grain1_0048 - Copy.jpg\n200kV_500kx_p2nm_8cmCL_grain1_0050 - Copy.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"200kV_500kx_p2nm_8cmCL_grain1_0052 - Copy.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"200kV_500kx_p2nm_8cmCL_grain1_0054 - Copy.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"200kV_500kx_p2nm_8cmCL_grain1_0058 - Copy.jpg\n200kV_500kx_p2nm_8cmCL_grain1_0060 - Copy.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"200kV_500kx_p2nm_8cmCL_grain1_0062 - Copy.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"200kV_500kx_p2nm_8cmCL_grain1_0064 - Copy.jpg\n200kV_500kx_p2nm_8cmCL_grain1_0066 - Copy.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"200kV_500kx_p2nm_8cmCL_grain1_0068 - Copy.jpg\n200kV_500kx_p2nm_8cmCL_grain1_0070 - Copy.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"200kV_500kx_p2nm_8cmCL_grain1_0072 - Copy.jpg\n200kV_500kx_p2nm_8cmCL_grain1_0074 - Copy.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"200kV_500kx_p2nm_8cmCL_grain1_0076 - Copy.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"200kV_500kx_p2nm_8cmCL_grain1_0078 - Copy.jpg\n200kV_500kx_p2nm_8cmCL_grain1_0080 - Copy.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"200kV_500kx_p2nm_8cmCL_grain1_0084 - Copy.jpg\n200kV_500kx_p2nm_8cmCL_grain1_0086 - Copy.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"200kV_500kx_p2nm_8cmCL_grain1_0090 - Copy.jpg\n200kV_500kx_p2nm_8cmCL_grain1_0092 - Copy.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"200kV_500kx_p2nm_8cmCL_grain1_0109.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"200kV_500kx_p2nm_8cmCL_grain1_0111.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"200kV_500kx_p2nm_8cmCL_grain1_0129.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"200kV_500kx_p2nm_8cmCL_grain2_0010.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"200kV_500kx_p2nm_8cmCL_grain2_0012.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"200kV_500kx_p2nm_8cmCL_grain3_4_0258.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"2501_300kx_1nm_clhaadf3_0032.jpg\n2501_300kx_1nm_clhaadf3_0034.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"2501_300kx_1nm_clhaadf3_0036.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"2501_300kx_1nm_clhaadf3_0038.jpg\n2501_300kx_1nm_clhaadf3_0040.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"2501_300kx_1nm_clhaadf3_0042.jpg\n2501_300kx_1nm_clhaadf3_0044.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"2501_300kx_1nm_clhaadf3_0046.jpg\n2501_300kx_1nm_clhaadf3_0048.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"2501_300kx_1nm_clhaadf3_0050.jpg\n2501_300kx_1nm_clhaadf3_0052.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"2501_300kx_1nm_clhaadf3_0054.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"2ROI_100kx_4100CL_foil1.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"3ROI_100kx_4100CL_foil1.jpg\n4ROI_100kx_4100CL_foil1.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"5401_300kx_1nm_clhaadf3_0004.jpg\n5401_300kx_1nm_clhaadf3_0006.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"5401_300kx_1nm_clhaadf3_0016.jpg\n5401_300kx_1nm_clhaadf3_0018.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"5401_300kx_1nm_clhaadf3_0022.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"5401_300kx_1nm_clhaadf3_0024.jpg\n5401_300kx_1nm_clhaadf3_0026.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"5401_300kx_1nm_clhaadf3_0030.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"5ROI_100kx_4100CL_foil1 copy.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"6ROI_100kx_4100CL_foil1 copy.jpg\n7ROI_100kx_4100CL_foil1 copy.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"9ROI_100kx_4100CL_foil1.jpg\nBF X500K, 01 (2).jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"BF X500K, 01 (3).jpg\nBF X500K, 02 (2).jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"BF X500K, 03 (2).jpg\nBF X500K, 04.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"BF X500K, 05 (2).jpg\nBF X500K, 05.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"BF X500K, 06 (3).jpg\nBF X500K, 06.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"BF X500K, 07 (2).jpg\nBF X500K, 08 (2).jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"BF X500K, 08 (3).jpg\nBF X500K, 08.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"BF X500K, 10 (2).jpg\nBF X500K, 10 (3).jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"BF X500K, 10.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"BF X500K, 11 (2).jpg\nBF X500K, 11 (3).jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"BF X500K, 11.jpg\nBF X500K, 12 (2).jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"BF X500K, 12 (3).jpg\nBF X500K, 12.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"BF X500K, 13 (3).jpg\nBF X500K, 14.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"BF X500K, 15.jpg\nBF X500K, 16.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"K713_300kx_store4_grid1_0005.jpg\nK713_300kx_store4_grid1_0007.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"K713_300kx_store4_grid1_0009.jpg\nK713_300kx_store4_grid1_0011.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"K713_300kx_store4_grid1_0013.jpg\nK713_300kx_store4_grid1_0015.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"K713_300kx_store4_grid1_0017.jpg\nK713_300kx_store4_grid1_0019.jpg"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\ndalong2.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"dalong3.jpg\ng1_backonzone_GBtowardsfrom_0005.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"g1_frontonzone_GBtowardsback_0006.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"g2_midonzone_GBtowardsfront_0005.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"g2_midonzone_GBtowardsfront_0034.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"g2_midonzone_GBtowardsmmiddle_0003.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"g2_midonzone_GBtowardsmmiddle_0005.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi1_500kx_0p5nm_haadf1_0001.jpg\ngrid1_roi1_500kx_0p5nm_haadf1_0003.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi1_500kx_0p5nm_haadf1_0005.jpg\ngrid1_roi1_500kx_0p5nm_haadf1_0007.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi1_500kx_0p5nm_haadf1_0009.jpg\ngrid1_roi1_500kx_0p5nm_haadf1_0011.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi1_500kx_0p5nm_haadf1_0013.jpg\ngrid1_roi1_500kx_0p5nm_haadf1_0015.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi1_500kx_0p5nm_haadf1_0017.jpg\ngrid1_roi1_500kx_0p5nm_haadf1_0019.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi1_500kx_0p5nm_haadf1_0021.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi1_500kx_0p5nm_haadf1_0023.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi1_500kx_0p5nm_haadf1_0027.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi1_500kx_0p5nm_haadf1_0029.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi1_500kx_0p5nm_haadf1_0031.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi2_500kx_0p5nm_haadf1_0035.jpg\ngrid1_roi2_500kx_0p5nm_haadf1_0037.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi2_500kx_0p5nm_haadf1_0039.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi2_500kx_0p5nm_haadf1_0041.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi2_500kx_0p5nm_haadf1_0044.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi2_500kx_0p5nm_haadf1_0045.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi2_500kx_0p5nm_haadf1_0049.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi2_500kx_0p5nm_haadf1_0051.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi2_500kx_0p5nm_haadf1_0053.jpg\ngrid1_roi2_500kx_0p5nm_haadf1_0055.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi2_500kx_0p5nm_haadf1_0057.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi2_500kx_0p5nm_haadf1_0059.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi2_500kx_0p5nm_haadf1_0061.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi2_500kx_0p5nm_haadf1_0063.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi2_500kx_0p5nm_haadf1_0065.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi2_500kx_0p5nm_haadf1_0067.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi2_500kx_0p5nm_haadf1_0069.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"BF X500K, 05 (3).jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"0501_300kx_1nm_clhaadf3_0038.jpg\n"
]
}
],
"source": [
"##################################################\n",
"# 1. Define data augmentation operations\n",
"##################################################\n",
"\n",
"trainImageTxtFile = dataPath + \"trainimages.txt\"\n",
"imageList = getImageList(trainImageTxtFile)\n",
"\n",
"current_operation = \"ContrastNormalization\"\n",
"\n",
"# Improve or worsen the contrast of images.\n",
"\n",
"from imgaug import augmenters as iaa\n",
"ia.seed(1)\n",
"seq = iaa.Sequential([\n",
" iaa.ContrastNormalization((0.8, 1.5), per_channel=True)\n",
"])\n",
"\n",
"# seq = iaa.Sequential([ \n",
"# # Adjust contrast by scaling each pixel value to (I_ij/255.0)**gamma.\n",
"# # Values in the range gamma=(0.5, 2.0) seem to be sensible.\n",
"# iaa.GammaContrast((0.5, 1.5))\n",
"# ])\n",
"\n",
"# Make our sequence deterministic.\n",
"# We can now apply it to the image and then to the BBs and it will\n",
"# lead to the same augmentations.\n",
"# IMPORTANT: Call this once PER BATCH, otherwise you will always get the exactly same augmentations for every batch!\n",
"seq_det = seq.to_deterministic()\n",
"\n",
"##################################################\n",
"# 2. loop through images\n",
"##################################################\n",
"\n",
"for img in imageList:\n",
" print(img)\n",
" # Grayscale images must have shape (height, width, 1) each.\n",
" #print(os.listdir(dataPath+'images/'))\n",
" currentimage = skimage.io.imread(dataPath+'images/'+img).astype(np.uint8)\n",
" # gray2rgb() simply duplicates the gray values over the three color channels.\n",
" currentimage = color.gray2rgb(currentimage)\n",
" bbs = bboxSetupInImage(dataPath , img.rstrip('.jpg') + '.txt',currentimage)\n",
" # Augment BBs and images.\n",
" # As we only have one image and list of BBs, we use\n",
" # [image] and [bbs] to turn both into lists (batches) for the# functions and then [0] to reverse that. In a real experiment, your\n",
" # variables would likely already be lists.\n",
" image_aug = seq_det.augment_images([currentimage])[0]\n",
" bbs_aug = seq_det.augment_bounding_boxes([bbs])[0]\n",
" augImgFolder = current_operation + \"Images\"\n",
" augTxTFolder = current_operation + \"TXT\"\n",
" createFolder(augImgFolder)\n",
" createFolder(augTxTFolder)\n",
" # Save aug images and bboxes\n",
" skimage.io.imsave(augImgFolder + '/'+\n",
" img.rstrip('.jpg') + \n",
" '_' + current_operation +\n",
" '.jpg'\n",
" ,image_aug)\n",
" saveAugbbox2TXT(augTxTFolder+ '/'+ \n",
" img.rstrip('.jpg') + \n",
" '_'+ current_operation +\n",
" '.txt',bbs_aug)\n",
" # image with BBs before/after augmentation (shown below)\n",
" # image_before = bbs.draw_on_image(currentimage, thickness=2)\n",
" # image_after = bbs_aug.draw_on_image(image_aug, \n",
" # thickness=2, color=[0, 0, 255])\n",
" # image with BBs before/after augmentation (shown below)\n",
" # plot and save figures before and after data augmentations\n",
" #skimage.io.imshow(image_before)\n",
" #skimage.io.imshow(image_after)\n",
" # for i in range(len(bbs.bounding_boxes)):\n",
" # before = bbs.bounding_boxes[i]\n",
" # after = bbs_aug.bounding_boxes[i]\n",
" # print(\"BB %d: (%.4f, %.4f, %.4f, %.4f) -> (%.4f, %.4f, %.4f, %.4f)\" % (\n",
" # i,\n",
" # before.x1, before.y1, before.x2, before.y2,\n",
" # after.x1, after.y1, after.x2, after.y2)\n",
" # )"
]
},
{
"cell_type": "heading",
"metadata": {},
"level": 2,
"source": [
"Flip left-right"
]
},
{
"cell_type": "code",
"execution_count": 34,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"0501_300kx_1nm_clhaadf3_0006.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"0501_300kx_1nm_clhaadf3_0008.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"0501_300kx_1nm_clhaadf3_0012.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"0501_300kx_1nm_clhaadf3_0016.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"0501_300kx_1nm_clhaadf3_0018.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"0501_300kx_1nm_clhaadf3_0020.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"0501_300kx_1nm_clhaadf3_0022.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"0501_300kx_1nm_clhaadf3_0024.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"0501_300kx_1nm_clhaadf3_0026.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"0501_300kx_1nm_clhaadf3_0030.jpg\n0501_300kx_1nm_clhaadf3_0031.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"0501_300kx_1nm_clhaadf3_0034.jpg\n0501_300kx_1nm_clhaadf3_0036.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"0501_300kx_1nm_clhaadf3_0040.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"0501_300kx_1nm_clhaadf3_0044.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"0501_300kx_1nm_clhaadf3_0046.jpg\n0501_300kx_1nm_clhaadf3_0048.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"0501_300kx_1nm_clhaadf3_0050.jpg\n200kV_500kx_p2nm_8cmCL_grain1_0002.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"200kV_500kx_p2nm_8cmCL_grain1_0002_n.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"200kV_500kx_p2nm_8cmCL_grain1_0004_n.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"200kV_500kx_p2nm_8cmCL_grain1_0048 - Copy.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"200kV_500kx_p2nm_8cmCL_grain1_0050 - Copy.jpg\n200kV_500kx_p2nm_8cmCL_grain1_0052 - Copy.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"200kV_500kx_p2nm_8cmCL_grain1_0054 - Copy.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"200kV_500kx_p2nm_8cmCL_grain1_0058 - Copy.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"200kV_500kx_p2nm_8cmCL_grain1_0060 - Copy.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"200kV_500kx_p2nm_8cmCL_grain1_0062 - Copy.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"200kV_500kx_p2nm_8cmCL_grain1_0064 - Copy.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"200kV_500kx_p2nm_8cmCL_grain1_0066 - Copy.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"200kV_500kx_p2nm_8cmCL_grain1_0068 - Copy.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"200kV_500kx_p2nm_8cmCL_grain1_0070 - Copy.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"200kV_500kx_p2nm_8cmCL_grain1_0072 - Copy.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"200kV_500kx_p2nm_8cmCL_grain1_0074 - Copy.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"200kV_500kx_p2nm_8cmCL_grain1_0076 - Copy.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"200kV_500kx_p2nm_8cmCL_grain1_0078 - Copy.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"200kV_500kx_p2nm_8cmCL_grain1_0080 - Copy.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"200kV_500kx_p2nm_8cmCL_grain1_0084 - Copy.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"200kV_500kx_p2nm_8cmCL_grain1_0086 - Copy.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"200kV_500kx_p2nm_8cmCL_grain1_0090 - Copy.jpg\n200kV_500kx_p2nm_8cmCL_grain1_0092 - Copy.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"200kV_500kx_p2nm_8cmCL_grain1_0109.jpg\n200kV_500kx_p2nm_8cmCL_grain1_0111.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"200kV_500kx_p2nm_8cmCL_grain1_0129.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"200kV_500kx_p2nm_8cmCL_grain2_0010.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"200kV_500kx_p2nm_8cmCL_grain2_0012.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"200kV_500kx_p2nm_8cmCL_grain3_4_0258.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"2501_300kx_1nm_clhaadf3_0032.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"2501_300kx_1nm_clhaadf3_0034.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"2501_300kx_1nm_clhaadf3_0036.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"2501_300kx_1nm_clhaadf3_0038.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"2501_300kx_1nm_clhaadf3_0040.jpg\n2501_300kx_1nm_clhaadf3_0042.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"2501_300kx_1nm_clhaadf3_0044.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"2501_300kx_1nm_clhaadf3_0046.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"2501_300kx_1nm_clhaadf3_0048.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"2501_300kx_1nm_clhaadf3_0050.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"2501_300kx_1nm_clhaadf3_0052.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"2501_300kx_1nm_clhaadf3_0054.jpg\n2ROI_100kx_4100CL_foil1.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"3ROI_100kx_4100CL_foil1.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"4ROI_100kx_4100CL_foil1.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"5401_300kx_1nm_clhaadf3_0004.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"5401_300kx_1nm_clhaadf3_0006.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"5401_300kx_1nm_clhaadf3_0016.jpg\n5401_300kx_1nm_clhaadf3_0018.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"5401_300kx_1nm_clhaadf3_0022.jpg\n5401_300kx_1nm_clhaadf3_0024.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"5401_300kx_1nm_clhaadf3_0026.jpg\n5401_300kx_1nm_clhaadf3_0030.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"5ROI_100kx_4100CL_foil1 copy.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"6ROI_100kx_4100CL_foil1 copy.jpg\n7ROI_100kx_4100CL_foil1 copy.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"9ROI_100kx_4100CL_foil1.jpg\nBF X500K, 01 (2).jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"BF X500K, 01 (3).jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"BF X500K, 02 (2).jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"BF X500K, 03 (2).jpg\nBF X500K, 04.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"BF X500K, 05 (2).jpg\nBF X500K, 05.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"BF X500K, 06 (3).jpg\nBF X500K, 06.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"BF X500K, 07 (2).jpg\nBF X500K, 08 (2).jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"BF X500K, 08 (3).jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"BF X500K, 08.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"BF X500K, 10 (2).jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"BF X500K, 10 (3).jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"BF X500K, 10.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"BF X500K, 11 (2).jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"BF X500K, 11 (3).jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"BF X500K, 11.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"BF X500K, 12 (2).jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"BF X500K, 12 (3).jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"BF X500K, 12.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"BF X500K, 13 (3).jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"BF X500K, 14.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"BF X500K, 15.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"BF X500K, 16.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"K713_300kx_store4_grid1_0005.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"K713_300kx_store4_grid1_0007.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"K713_300kx_store4_grid1_0009.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"K713_300kx_store4_grid1_0011.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"K713_300kx_store4_grid1_0013.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"K713_300kx_store4_grid1_0015.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"K713_300kx_store4_grid1_0017.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"K713_300kx_store4_grid1_0019.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"dalong2.jpg\ndalong3.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"g1_backonzone_GBtowardsfrom_0005.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"g1_frontonzone_GBtowardsback_0006.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"g2_midonzone_GBtowardsfront_0005.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"g2_midonzone_GBtowardsfront_0034.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"g2_midonzone_GBtowardsmmiddle_0003.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"g2_midonzone_GBtowardsmmiddle_0005.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi1_500kx_0p5nm_haadf1_0001.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi1_500kx_0p5nm_haadf1_0003.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi1_500kx_0p5nm_haadf1_0005.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi1_500kx_0p5nm_haadf1_0007.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi1_500kx_0p5nm_haadf1_0009.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi1_500kx_0p5nm_haadf1_0011.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi1_500kx_0p5nm_haadf1_0013.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi1_500kx_0p5nm_haadf1_0015.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi1_500kx_0p5nm_haadf1_0017.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi1_500kx_0p5nm_haadf1_0019.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi1_500kx_0p5nm_haadf1_0021.jpg\ngrid1_roi1_500kx_0p5nm_haadf1_0023.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi1_500kx_0p5nm_haadf1_0027.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi1_500kx_0p5nm_haadf1_0029.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi1_500kx_0p5nm_haadf1_0031.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi2_500kx_0p5nm_haadf1_0035.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi2_500kx_0p5nm_haadf1_0037.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi2_500kx_0p5nm_haadf1_0039.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi2_500kx_0p5nm_haadf1_0041.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi2_500kx_0p5nm_haadf1_0044.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi2_500kx_0p5nm_haadf1_0045.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi2_500kx_0p5nm_haadf1_0049.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi2_500kx_0p5nm_haadf1_0051.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi2_500kx_0p5nm_haadf1_0053.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi2_500kx_0p5nm_haadf1_0055.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi2_500kx_0p5nm_haadf1_0057.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi2_500kx_0p5nm_haadf1_0059.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi2_500kx_0p5nm_haadf1_0061.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi2_500kx_0p5nm_haadf1_0063.jpg\ngrid1_roi2_500kx_0p5nm_haadf1_0065.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi2_500kx_0p5nm_haadf1_0067.jpg\ngrid1_roi2_500kx_0p5nm_haadf1_0069.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"BF X500K, 05 (3).jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"0501_300kx_1nm_clhaadf3_0038.jpg\n"
]
}
],
"source": [
"##################################################\n",
"# 1. Define data augmentation operations\n",
"##################################################\n",
"\n",
"trainImageTxtFile = dataPath + \"trainimages.txt\"\n",
"imageList = getImageList(trainImageTxtFile)\n",
"\n",
"current_operation = \"Fliplr\"\n",
"\n",
"# Flip/mirror input images horizontally.\n",
" \n",
"from imgaug import augmenters as iaa\n",
"ia.seed(1)\n",
"seq = iaa.Sequential([\n",
" iaa.Fliplr(1.0)\n",
"])\n",
"\n",
"# seq = iaa.Sequential([ \n",
"# # Adjust contrast by scaling each pixel value to (I_ij/255.0)**gamma.\n",
"# # Values in the range gamma=(0.5, 2.0) seem to be sensible.\n",
"# iaa.GammaContrast((0.5, 1.5))\n",
"# ])\n",
"\n",
"# Make our sequence deterministic.\n",
"# We can now apply it to the image and then to the BBs and it will\n",
"# lead to the same augmentations.\n",
"# IMPORTANT: Call this once PER BATCH, otherwise you will always get the exactly same augmentations for every batch!\n",
"seq_det = seq.to_deterministic()\n",
"\n",
"##################################################\n",
"# 2. loop through images\n",
"##################################################\n",
"\n",
"for img in imageList:\n",
" print(img)\n",
" # Grayscale images must have shape (height, width, 1) each.\n",
" #print(os.listdir(dataPath+'images/'))\n",
" currentimage = skimage.io.imread(dataPath+'images/'+img).astype(np.uint8)\n",
" # gray2rgb() simply duplicates the gray values over the three color channels.\n",
" currentimage = color.gray2rgb(currentimage)\n",
" bbs = bboxSetupInImage(dataPath , img.rstrip('.jpg') + '.txt',currentimage)\n",
" # Augment BBs and images.\n",
" # As we only have one image and list of BBs, we use\n",
" # [image] and [bbs] to turn both into lists (batches) for the# functions and then [0] to reverse that. In a real experiment, your\n",
" # variables would likely already be lists.\n",
" image_aug = seq_det.augment_images([currentimage])[0]\n",
" bbs_aug = seq_det.augment_bounding_boxes([bbs])[0]\n",
" augImgFolder = current_operation + \"Images\"\n",
" augTxTFolder = current_operation + \"TXT\"\n",
" createFolder(augImgFolder)\n",
" createFolder(augTxTFolder)\n",
" # Save aug images and bboxes\n",
" skimage.io.imsave(augImgFolder + '/'+\n",
" img.rstrip('.jpg') + \n",
" '_' + current_operation +\n",
" '.jpg'\n",
" ,image_aug)\n",
" saveAugbbox2TXT(augTxTFolder+ '/'+ \n",
" img.rstrip('.jpg') + \n",
" '_'+ current_operation +\n",
" '.txt',bbs_aug)\n",
" # image with BBs before/after augmentation (shown below)\n",
" # image_before = bbs.draw_on_image(currentimage, thickness=2)\n",
" # image_after = bbs_aug.draw_on_image(image_aug, \n",
" # thickness=2, color=[0, 0, 255])\n",
" # image with BBs before/after augmentation (shown below)\n",
" # plot and save figures before and after data augmentations\n",
" #skimage.io.imshow(image_before)\n",
" #skimage.io.imshow(image_after)\n",
" # for i in range(len(bbs.bounding_boxes)):\n",
" # before = bbs.bounding_boxes[i]\n",
" # after = bbs_aug.bounding_boxes[i]\n",
" # print(\"BB %d: (%.4f, %.4f, %.4f, %.4f) -> (%.4f, %.4f, %.4f, %.4f)\" % (\n",
" # i,\n",
" # before.x1, before.y1, before.x2, before.y2,\n",
" # after.x1, after.y1, after.x2, after.y2)\n",
" # )"
]
},
{
"cell_type": "heading",
"metadata": {},
"level": 2,
"source": [
"Flip up-down"
]
},
{
"cell_type": "code",
"execution_count": 35,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"0501_300kx_1nm_clhaadf3_0006.jpg\n0501_300kx_1nm_clhaadf3_0008.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"0501_300kx_1nm_clhaadf3_0012.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"0501_300kx_1nm_clhaadf3_0016.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"0501_300kx_1nm_clhaadf3_0018.jpg\n0501_300kx_1nm_clhaadf3_0020.jpg"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"0501_300kx_1nm_clhaadf3_0022.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"0501_300kx_1nm_clhaadf3_0024.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"0501_300kx_1nm_clhaadf3_0026.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"0501_300kx_1nm_clhaadf3_0030.jpg\n0501_300kx_1nm_clhaadf3_0031.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"0501_300kx_1nm_clhaadf3_0034.jpg\n0501_300kx_1nm_clhaadf3_0036.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"0501_300kx_1nm_clhaadf3_0040.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"0501_300kx_1nm_clhaadf3_0044.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"0501_300kx_1nm_clhaadf3_0046.jpg\n0501_300kx_1nm_clhaadf3_0048.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"0501_300kx_1nm_clhaadf3_0050.jpg\n200kV_500kx_p2nm_8cmCL_grain1_0002.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"200kV_500kx_p2nm_8cmCL_grain1_0002_n.jpg\n200kV_500kx_p2nm_8cmCL_grain1_0004_n.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"200kV_500kx_p2nm_8cmCL_grain1_0048 - Copy.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"200kV_500kx_p2nm_8cmCL_grain1_0050 - Copy.jpg\n200kV_500kx_p2nm_8cmCL_grain1_0052 - Copy.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"200kV_500kx_p2nm_8cmCL_grain1_0054 - Copy.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"200kV_500kx_p2nm_8cmCL_grain1_0058 - Copy.jpg\n200kV_500kx_p2nm_8cmCL_grain1_0060 - Copy.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"200kV_500kx_p2nm_8cmCL_grain1_0062 - Copy.jpg\n200kV_500kx_p2nm_8cmCL_grain1_0064 - Copy.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"200kV_500kx_p2nm_8cmCL_grain1_0066 - Copy.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"200kV_500kx_p2nm_8cmCL_grain1_0068 - Copy.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"200kV_500kx_p2nm_8cmCL_grain1_0070 - Copy.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"200kV_500kx_p2nm_8cmCL_grain1_0072 - Copy.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"200kV_500kx_p2nm_8cmCL_grain1_0074 - Copy.jpg\n200kV_500kx_p2nm_8cmCL_grain1_0076 - Copy.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"200kV_500kx_p2nm_8cmCL_grain1_0078 - Copy.jpg\n200kV_500kx_p2nm_8cmCL_grain1_0080 - Copy.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"200kV_500kx_p2nm_8cmCL_grain1_0084 - Copy.jpg\n200kV_500kx_p2nm_8cmCL_grain1_0086 - Copy.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"200kV_500kx_p2nm_8cmCL_grain1_0090 - Copy.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"200kV_500kx_p2nm_8cmCL_grain1_0092 - Copy.jpg\n200kV_500kx_p2nm_8cmCL_grain1_0109.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"200kV_500kx_p2nm_8cmCL_grain1_0111.jpg\n200kV_500kx_p2nm_8cmCL_grain1_0129.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"200kV_500kx_p2nm_8cmCL_grain2_0010.jpg\n200kV_500kx_p2nm_8cmCL_grain2_0012.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"200kV_500kx_p2nm_8cmCL_grain3_4_0258.jpg\n2501_300kx_1nm_clhaadf3_0032.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"2501_300kx_1nm_clhaadf3_0034.jpg\n2501_300kx_1nm_clhaadf3_0036.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"2501_300kx_1nm_clhaadf3_0038.jpg\n2501_300kx_1nm_clhaadf3_0040.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"2501_300kx_1nm_clhaadf3_0042.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"2501_300kx_1nm_clhaadf3_0044.jpg\n2501_300kx_1nm_clhaadf3_0046.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"2501_300kx_1nm_clhaadf3_0048.jpg\n2501_300kx_1nm_clhaadf3_0050.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"2501_300kx_1nm_clhaadf3_0052.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"2501_300kx_1nm_clhaadf3_0054.jpg\n2ROI_100kx_4100CL_foil1.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"3ROI_100kx_4100CL_foil1.jpg\n4ROI_100kx_4100CL_foil1.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"5401_300kx_1nm_clhaadf3_0004.jpg\n5401_300kx_1nm_clhaadf3_0006.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"5401_300kx_1nm_clhaadf3_0016.jpg\n5401_300kx_1nm_clhaadf3_0018.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"5401_300kx_1nm_clhaadf3_0022.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"5401_300kx_1nm_clhaadf3_0024.jpg\n5401_300kx_1nm_clhaadf3_0026.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"5401_300kx_1nm_clhaadf3_0030.jpg\n5ROI_100kx_4100CL_foil1 copy.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"6ROI_100kx_4100CL_foil1 copy.jpg\n7ROI_100kx_4100CL_foil1 copy.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"9ROI_100kx_4100CL_foil1.jpg\nBF X500K, 01 (2).jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"BF X500K, 01 (3).jpg\nBF X500K, 02 (2).jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"BF X500K, 03 (2).jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"BF X500K, 04.jpg\nBF X500K, 05 (2).jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"BF X500K, 05.jpg\nBF X500K, 06 (3).jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"BF X500K, 06.jpg\nBF X500K, 07 (2).jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"BF X500K, 08 (2).jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"BF X500K, 08 (3).jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"BF X500K, 08.jpg\nBF X500K, 10 (2).jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"BF X500K, 10 (3).jpg\nBF X500K, 10.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"BF X500K, 11 (2).jpg\nBF X500K, 11 (3).jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"BF X500K, 11.jpg\nBF X500K, 12 (2).jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"BF X500K, 12 (3).jpg\nBF X500K, 12.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"BF X500K, 13 (3).jpg\nBF X500K, 14.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"BF X500K, 15.jpg\nBF X500K, 16.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"K713_300kx_store4_grid1_0005.jpg\nK713_300kx_store4_grid1_0007.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"K713_300kx_store4_grid1_0009.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"K713_300kx_store4_grid1_0011.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"K713_300kx_store4_grid1_0013.jpg\nK713_300kx_store4_grid1_0015.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"K713_300kx_store4_grid1_0017.jpg\nK713_300kx_store4_grid1_0019.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"dalong2.jpg\ndalong3.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"g1_backonzone_GBtowardsfrom_0005.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"g1_frontonzone_GBtowardsback_0006.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"g2_midonzone_GBtowardsfront_0005.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"g2_midonzone_GBtowardsfront_0034.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"g2_midonzone_GBtowardsmmiddle_0003.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"g2_midonzone_GBtowardsmmiddle_0005.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi1_500kx_0p5nm_haadf1_0001.jpg\ngrid1_roi1_500kx_0p5nm_haadf1_0003.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi1_500kx_0p5nm_haadf1_0005.jpg\ngrid1_roi1_500kx_0p5nm_haadf1_0007.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi1_500kx_0p5nm_haadf1_0009.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi1_500kx_0p5nm_haadf1_0011.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi1_500kx_0p5nm_haadf1_0013.jpg\ngrid1_roi1_500kx_0p5nm_haadf1_0015.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi1_500kx_0p5nm_haadf1_0017.jpg\ngrid1_roi1_500kx_0p5nm_haadf1_0019.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi1_500kx_0p5nm_haadf1_0021.jpg\ngrid1_roi1_500kx_0p5nm_haadf1_0023.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi1_500kx_0p5nm_haadf1_0027.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi1_500kx_0p5nm_haadf1_0029.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi1_500kx_0p5nm_haadf1_0031.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi2_500kx_0p5nm_haadf1_0035.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi2_500kx_0p5nm_haadf1_0037.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi2_500kx_0p5nm_haadf1_0039.jpg\ngrid1_roi2_500kx_0p5nm_haadf1_0041.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi2_500kx_0p5nm_haadf1_0044.jpg\ngrid1_roi2_500kx_0p5nm_haadf1_0045.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi2_500kx_0p5nm_haadf1_0049.jpg\ngrid1_roi2_500kx_0p5nm_haadf1_0051.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi2_500kx_0p5nm_haadf1_0053.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi2_500kx_0p5nm_haadf1_0055.jpg\ngrid1_roi2_500kx_0p5nm_haadf1_0057.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi2_500kx_0p5nm_haadf1_0059.jpg\ngrid1_roi2_500kx_0p5nm_haadf1_0061.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi2_500kx_0p5nm_haadf1_0063.jpg\ngrid1_roi2_500kx_0p5nm_haadf1_0065.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi2_500kx_0p5nm_haadf1_0067.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi2_500kx_0p5nm_haadf1_0069.jpg\nBF X500K, 05 (3).jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"0501_300kx_1nm_clhaadf3_0038.jpg\n"
]
}
],
"source": [
"##################################################\n",
"# 1. Define data augmentation operations\n",
"##################################################\n",
"\n",
"trainImageTxtFile = dataPath + \"trainimages.txt\"\n",
"imageList = getImageList(trainImageTxtFile)\n",
"\n",
"current_operation = \"Flipud\"\n",
"\n",
"# Flip/mirror input images vertically.\n",
" \n",
"from imgaug import augmenters as iaa\n",
"ia.seed(1)\n",
"seq = iaa.Sequential([\n",
" iaa.Flipud(1.0)\n",
"])\n",
"\n",
"# seq = iaa.Sequential([ \n",
"# # Adjust contrast by scaling each pixel value to (I_ij/255.0)**gamma.\n",
"# # Values in the range gamma=(0.5, 2.0) seem to be sensible.\n",
"# iaa.GammaContrast((0.5, 1.5))\n",
"# ])\n",
"\n",
"# Make our sequence deterministic.\n",
"# We can now apply it to the image and then to the BBs and it will\n",
"# lead to the same augmentations.\n",
"# IMPORTANT: Call this once PER BATCH, otherwise you will always get the exactly same augmentations for every batch!\n",
"seq_det = seq.to_deterministic()\n",
"\n",
"##################################################\n",
"# 2. loop through images\n",
"##################################################\n",
"\n",
"for img in imageList:\n",
" print(img)\n",
" # Grayscale images must have shape (height, width, 1) each.\n",
" #print(os.listdir(dataPath+'images/'))\n",
" currentimage = skimage.io.imread(dataPath+'images/'+img).astype(np.uint8)\n",
" # gray2rgb() simply duplicates the gray values over the three color channels.\n",
" currentimage = color.gray2rgb(currentimage)\n",
" bbs = bboxSetupInImage(dataPath , img.rstrip('.jpg') + '.txt',currentimage)\n",
" # Augment BBs and images.\n",
" # As we only have one image and list of BBs, we use\n",
" # [image] and [bbs] to turn both into lists (batches) for the# functions and then [0] to reverse that. In a real experiment, your\n",
" # variables would likely already be lists.\n",
" image_aug = seq_det.augment_images([currentimage])[0]\n",
" bbs_aug = seq_det.augment_bounding_boxes([bbs])[0]\n",
" augImgFolder = current_operation + \"Images\"\n",
" augTxTFolder = current_operation + \"TXT\"\n",
" createFolder(augImgFolder)\n",
" createFolder(augTxTFolder)\n",
" # Save aug images and bboxes\n",
" skimage.io.imsave(augImgFolder + '/'+\n",
" img.rstrip('.jpg') + \n",
" '_' + current_operation +\n",
" '.jpg'\n",
" ,image_aug)\n",
" saveAugbbox2TXT(augTxTFolder+ '/'+ \n",
" img.rstrip('.jpg') + \n",
" '_'+ current_operation +\n",
" '.txt',bbs_aug)\n",
" # image with BBs before/after augmentation (shown below)\n",
" # image_before = bbs.draw_on_image(currentimage, thickness=2)\n",
" # image_after = bbs_aug.draw_on_image(image_aug, \n",
" # thickness=2, color=[0, 0, 255])\n",
" # image with BBs before/after augmentation (shown below)\n",
" # plot and save figures before and after data augmentations\n",
" #skimage.io.imshow(image_before)\n",
" #skimage.io.imshow(image_after)\n",
" # for i in range(len(bbs.bounding_boxes)):\n",
" # before = bbs.bounding_boxes[i]\n",
" # after = bbs_aug.bounding_boxes[i]\n",
" # print(\"BB %d: (%.4f, %.4f, %.4f, %.4f) -> (%.4f, %.4f, %.4f, %.4f)\" % (\n",
" # i,\n",
" # before.x1, before.y1, before.x2, before.y2,\n",
" # after.x1, after.y1, after.x2, after.y2)\n",
" # )"
]
},
{
"cell_type": "heading",
"metadata": {},
"level": 2,
"source": [
"Rotate 90 or 270 degree"
]
},
{
"cell_type": "code",
"execution_count": 38,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"0501_300kx_1nm_clhaadf3_0006.jpg\n0501_300kx_1nm_clhaadf3_0008.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"0501_300kx_1nm_clhaadf3_0012.jpg\n0501_300kx_1nm_clhaadf3_0016.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"0501_300kx_1nm_clhaadf3_0018.jpg\n0501_300kx_1nm_clhaadf3_0020.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"0501_300kx_1nm_clhaadf3_0022.jpg\n0501_300kx_1nm_clhaadf3_0024.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"0501_300kx_1nm_clhaadf3_0026.jpg\n0501_300kx_1nm_clhaadf3_0030.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"0501_300kx_1nm_clhaadf3_0031.jpg\n0501_300kx_1nm_clhaadf3_0034.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"0501_300kx_1nm_clhaadf3_0036.jpg\n0501_300kx_1nm_clhaadf3_0040.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"0501_300kx_1nm_clhaadf3_0044.jpg\n0501_300kx_1nm_clhaadf3_0046.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"0501_300kx_1nm_clhaadf3_0048.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"0501_300kx_1nm_clhaadf3_0050.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"200kV_500kx_p2nm_8cmCL_grain1_0002.jpg\n200kV_500kx_p2nm_8cmCL_grain1_0002_n.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"200kV_500kx_p2nm_8cmCL_grain1_0004_n.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"200kV_500kx_p2nm_8cmCL_grain1_0048 - Copy.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"200kV_500kx_p2nm_8cmCL_grain1_0050 - Copy.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"200kV_500kx_p2nm_8cmCL_grain1_0052 - Copy.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"200kV_500kx_p2nm_8cmCL_grain1_0054 - Copy.jpg\n200kV_500kx_p2nm_8cmCL_grain1_0058 - Copy.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"200kV_500kx_p2nm_8cmCL_grain1_0060 - Copy.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"200kV_500kx_p2nm_8cmCL_grain1_0062 - Copy.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"200kV_500kx_p2nm_8cmCL_grain1_0064 - Copy.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"200kV_500kx_p2nm_8cmCL_grain1_0066 - Copy.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"200kV_500kx_p2nm_8cmCL_grain1_0068 - Copy.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"200kV_500kx_p2nm_8cmCL_grain1_0070 - Copy.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"200kV_500kx_p2nm_8cmCL_grain1_0072 - Copy.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"200kV_500kx_p2nm_8cmCL_grain1_0074 - Copy.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"200kV_500kx_p2nm_8cmCL_grain1_0076 - Copy.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"200kV_500kx_p2nm_8cmCL_grain1_0078 - Copy.jpg\n200kV_500kx_p2nm_8cmCL_grain1_0080 - Copy.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"200kV_500kx_p2nm_8cmCL_grain1_0084 - Copy.jpg\n200kV_500kx_p2nm_8cmCL_grain1_0086 - Copy.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"200kV_500kx_p2nm_8cmCL_grain1_0090 - Copy.jpg\n200kV_500kx_p2nm_8cmCL_grain1_0092 - Copy.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"200kV_500kx_p2nm_8cmCL_grain1_0109.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"200kV_500kx_p2nm_8cmCL_grain1_0111.jpg\n200kV_500kx_p2nm_8cmCL_grain1_0129.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"200kV_500kx_p2nm_8cmCL_grain2_0010.jpg\n200kV_500kx_p2nm_8cmCL_grain2_0012.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"200kV_500kx_p2nm_8cmCL_grain3_4_0258.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"2501_300kx_1nm_clhaadf3_0032.jpg\n2501_300kx_1nm_clhaadf3_0034.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"2501_300kx_1nm_clhaadf3_0036.jpg\n2501_300kx_1nm_clhaadf3_0038.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"2501_300kx_1nm_clhaadf3_0040.jpg\n2501_300kx_1nm_clhaadf3_0042.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"2501_300kx_1nm_clhaadf3_0044.jpg\n2501_300kx_1nm_clhaadf3_0046.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"2501_300kx_1nm_clhaadf3_0048.jpg\n2501_300kx_1nm_clhaadf3_0050.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"2501_300kx_1nm_clhaadf3_0052.jpg\n2501_300kx_1nm_clhaadf3_0054.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"2ROI_100kx_4100CL_foil1.jpg\n3ROI_100kx_4100CL_foil1.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"4ROI_100kx_4100CL_foil1.jpg\n5401_300kx_1nm_clhaadf3_0004.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"5401_300kx_1nm_clhaadf3_0006.jpg\n5401_300kx_1nm_clhaadf3_0016.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"5401_300kx_1nm_clhaadf3_0018.jpg\n5401_300kx_1nm_clhaadf3_0022.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"5401_300kx_1nm_clhaadf3_0024.jpg\n5401_300kx_1nm_clhaadf3_0026.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"5401_300kx_1nm_clhaadf3_0030.jpg\n5ROI_100kx_4100CL_foil1 copy.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"6ROI_100kx_4100CL_foil1 copy.jpg\n7ROI_100kx_4100CL_foil1 copy.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"9ROI_100kx_4100CL_foil1.jpg\nBF X500K, 01 (2).jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"BF X500K, 01 (3).jpg\nBF X500K, 02 (2).jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"BF X500K, 03 (2).jpg\nBF X500K, 04.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"BF X500K, 05 (2).jpg\nBF X500K, 05.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"BF X500K, 06 (3).jpg\nBF X500K, 06.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"BF X500K, 07 (2).jpg\nBF X500K, 08 (2).jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"BF X500K, 08 (3).jpg\nBF X500K, 08.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"BF X500K, 10 (2).jpg\nBF X500K, 10 (3).jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"BF X500K, 10.jpg\nBF X500K, 11 (2).jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"BF X500K, 11 (3).jpg\nBF X500K, 11.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"BF X500K, 12 (2).jpg\nBF X500K, 12 (3).jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"BF X500K, 12.jpg\nBF X500K, 13 (3).jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"BF X500K, 14.jpg\nBF X500K, 15.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"BF X500K, 16.jpg\nK713_300kx_store4_grid1_0005.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"K713_300kx_store4_grid1_0007.jpg\nK713_300kx_store4_grid1_0009.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"K713_300kx_store4_grid1_0011.jpg\nK713_300kx_store4_grid1_0013.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"K713_300kx_store4_grid1_0015.jpg\nK713_300kx_store4_grid1_0017.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"K713_300kx_store4_grid1_0019.jpg\ndalong2.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"dalong3.jpg\ng1_backonzone_GBtowardsfrom_0005.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"g1_frontonzone_GBtowardsback_0006.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"g2_midonzone_GBtowardsfront_0005.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"g2_midonzone_GBtowardsfront_0034.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"g2_midonzone_GBtowardsmmiddle_0003.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"g2_midonzone_GBtowardsmmiddle_0005.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi1_500kx_0p5nm_haadf1_0001.jpg\ngrid1_roi1_500kx_0p5nm_haadf1_0003.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi1_500kx_0p5nm_haadf1_0005.jpg\ngrid1_roi1_500kx_0p5nm_haadf1_0007.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi1_500kx_0p5nm_haadf1_0009.jpg\ngrid1_roi1_500kx_0p5nm_haadf1_0011.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi1_500kx_0p5nm_haadf1_0013.jpg\ngrid1_roi1_500kx_0p5nm_haadf1_0015.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi1_500kx_0p5nm_haadf1_0017.jpg\ngrid1_roi1_500kx_0p5nm_haadf1_0019.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi1_500kx_0p5nm_haadf1_0021.jpg\ngrid1_roi1_500kx_0p5nm_haadf1_0023.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi1_500kx_0p5nm_haadf1_0027.jpg\ngrid1_roi1_500kx_0p5nm_haadf1_0029.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi1_500kx_0p5nm_haadf1_0031.jpg\ngrid1_roi2_500kx_0p5nm_haadf1_0035.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi2_500kx_0p5nm_haadf1_0037.jpg\ngrid1_roi2_500kx_0p5nm_haadf1_0039.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi2_500kx_0p5nm_haadf1_0041.jpg\ngrid1_roi2_500kx_0p5nm_haadf1_0044.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi2_500kx_0p5nm_haadf1_0045.jpg\ngrid1_roi2_500kx_0p5nm_haadf1_0049.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi2_500kx_0p5nm_haadf1_0051.jpg\ngrid1_roi2_500kx_0p5nm_haadf1_0053.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi2_500kx_0p5nm_haadf1_0055.jpg\ngrid1_roi2_500kx_0p5nm_haadf1_0057.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi2_500kx_0p5nm_haadf1_0059.jpg\ngrid1_roi2_500kx_0p5nm_haadf1_0061.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi2_500kx_0p5nm_haadf1_0063.jpg\ngrid1_roi2_500kx_0p5nm_haadf1_0065.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid1_roi2_500kx_0p5nm_haadf1_0067.jpg\ngrid1_roi2_500kx_0p5nm_haadf1_0069.jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"BF X500K, 05 (3).jpg\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"0501_300kx_1nm_clhaadf3_0038.jpg\n"
]
}
],
"source": [
"##################################################\n",
"# 1. Define data augmentation operations\n",
"##################################################\n",
"\n",
"trainImageTxtFile = dataPath + \"trainimages.txt\"\n",
"imageList = getImageList(trainImageTxtFile)\n",
"\n",
"current_operation = \"Rot90or270Degree\"\n",
"\n",
"# Rotates all images by 90 or 270 degrees. \n",
" \n",
"from imgaug import augmenters as iaa\n",
"ia.seed(1)\n",
"seq = iaa.Sequential([\n",
" iaa.Rot90([1, 3])\n",
"])\n",
"\n",
"# seq = iaa.Sequential([ \n",
"# # Adjust contrast by scaling each pixel value to (I_ij/255.0)**gamma.\n",
"# # Values in the range gamma=(0.5, 2.0) seem to be sensible.\n",
"# iaa.GammaContrast((0.5, 1.5))\n",
"# ])\n",
"\n",
"# Make our sequence deterministic.\n",
"# We can now apply it to the image and then to the BBs and it will\n",
"# lead to the same augmentations.\n",
"# IMPORTANT: Call this once PER BATCH, otherwise you will always get the exactly same augmentations for every batch!\n",
"seq_det = seq.to_deterministic()\n",
"\n",
"##################################################\n",
"# 2. loop through images\n",
"##################################################\n",
"\n",
"for img in imageList:\n",
" print(img)\n",
" # Grayscale images must have shape (height, width, 1) each.\n",
" #print(os.listdir(dataPath+'images/'))\n",
" currentimage = skimage.io.imread(dataPath+'images/'+img).astype(np.uint8)\n",
" # gray2rgb() simply duplicates the gray values over the three color channels.\n",
" currentimage = color.gray2rgb(currentimage)\n",
" bbs = bboxSetupInImage(dataPath , img.rstrip('.jpg') + '.txt',currentimage)\n",
" # Augment BBs and images.\n",
" # As we only have one image and list of BBs, we use\n",
" # [image] and [bbs] to turn both into lists (batches) for the# functions and then [0] to reverse that. In a real experiment, your\n",
" # variables would likely already be lists.\n",
" image_aug = seq_det.augment_images([currentimage])[0]\n",
" bbs_aug = seq_det.augment_bounding_boxes([bbs])[0]\n",
" augImgFolder = current_operation + \"Images\"\n",
" augTxTFolder = current_operation + \"TXT\"\n",
" createFolder(augImgFolder)\n",
" createFolder(augTxTFolder)\n",
" # Save aug images and bboxes\n",
" skimage.io.imsave(augImgFolder + '/'+\n",
" img.rstrip('.jpg') + \n",
" '_' + current_operation +\n",
" '.jpg'\n",
" ,image_aug)\n",
" saveAugbbox2TXT(augTxTFolder+ '/'+ \n",
" img.rstrip('.jpg') + \n",
" '_'+ current_operation +\n",
" '.txt',bbs_aug)\n",
" # image with BBs before/after augmentation (shown below)\n",
" # image_before = bbs.draw_on_image(currentimage, thickness=2)\n",
" # image_after = bbs_aug.draw_on_image(image_aug, \n",
" # thickness=2, color=[0, 0, 255])\n",
" # image with BBs before/after augmentation (shown below)\n",
" # plot and save figures before and after data augmentations\n",
" #skimage.io.imshow(image_before)\n",
" #skimage.io.imshow(image_after)\n",
" # for i in range(len(bbs.bounding_boxes)):\n",
" # before = bbs.bounding_boxes[i]\n",
" # after = bbs_aug.bounding_boxes[i]\n",
" # print(\"BB %d: (%.4f, %.4f, %.4f, %.4f) -> (%.4f, %.4f, %.4f, %.4f)\" % (\n",
" # i,\n",
" # before.x1, before.y1, before.x2, before.y2,\n",
" # after.x1, after.y1, after.x2, after.y2)\n",
" # )\n",
"\n"
]
},
{
"cell_type": "heading",
"metadata": {},
"level": 1,
"source": [
"## End"
]
},
{
"cell_type": "code",
"execution_count": 38,
"metadata": {},
"outputs": [],
"source": [
""
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 2",
"language": "python",
"name": "python2"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 2
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython2",
"version": "2.7.6"
}
},
"nbformat": 4,
"nbformat_minor": 0
}