{"cells":[{"metadata":{},"cell_type":"markdown","source":"# **Code Name:** *Aleatory Sampler for Kaggle*\n\n* **Competition:** ALASKA2 Image Steganalysis\n* **Purpose of the code:** Sample Kaggle Competition Images to compete.\n* **Description:** The current code allows the user to sample Competition Images by extracting the competition images (origin: ../input/alaska2-image-steganalysis) into the (/kaggle/working/) aleatory according to a directory scheme.\n* **Warning:** The directory (/kaggle/working/) allows just 5GB; that is why the boundary limits had to be followed.\n\n**Directory Scheme in (/kaggle/working/):**\n\n'/kaggle/working/input/inputtoprototype-alaska2imagesteganalysis/Cover/'\n\n'/kaggle/working/input/inputtoprototype-alaska2imagesteganalysis/JMiPOD/'\n\n'/kaggle/working/input/inputtoprototype-alaska2imagesteganalysis/JUNIWARD/'\n\n'/kaggle/working/input/inputtoprototype-alaska2imagesteganalysis/UERD/'\n\n'/kaggle/working/input/inputtoprototype-alaska2imagesteganalysis/Test/'","execution_count":null},{"metadata":{"_uuid":"d629ff2d2480ee46fbb7e2d37f6b5fab8052498a","_cell_guid":"79c7e3d0-c299-4dcb-8224-4455121ee9b0","trusted":true},"cell_type":"code","source":"\"\"\"\nLoad Input image files of the competition\n\nPlease add data manually coresponding to the following competition:\n\nALASKA2 Image Steganalysis\n\n\"\"\"\n\n# Input directories\n\ninput_Cover = '/kaggle/input/alaska2-image-steganalysis/Cover/'\ninput_JMiPOD = '/kaggle/input/alaska2-image-steganalysis/JMiPOD/'\ninput_JUNIWARD = '/kaggle/input/alaska2-image-steganalysis/JUNIWARD/'\ninput_UERD = '/kaggle/input/alaska2-image-steganalysis/UERD/'\ninput_Test = '/kaggle/input/alaska2-image-steganalysis/Test/'\ndirectoryListInput = [input_Cover]+[input_JMiPOD]+[input_JUNIWARD]+[input_UERD]+[input_Test]\n\n# Number of Input Images and set of sample number:\n\ndef SampleFilesToCompete(directoryListInput, trainSample, testSample):\n\n    import os\n    \n    print('\\n*******************************************************************************************************************')\n    print('Sampling Method: Aleatory extraction')\n    print('*******************************************************************************************************************')\n    \n    input_Test = '/kaggle/input/alaska2-image-steganalysis/Test/'\n    KaggleInputList = []\n    \n    for i in directoryListInput:\n        \n        listy = os.listdir(i)\n        \n        if i == input_Test:\n            listySample = listy[0:testSample]\n        else:\n            listySample = listy[0:trainSample]\n        \n        print('\\nSourced Directory of Kaggle: ',i)\n        print('\\nExpected Number of Files to be extracted: \\n',len(listySample), ' from ', len(listy), ' available instances')\n        \n        KaggleInputList = KaggleInputList + [listySample]\n        \n    \n    print('\\n*******************************************************************************************************************')\n    print('Sample Features:')\n    print('*******************************************************************************************************************')\n    print('\\nTest-sample instances number: ', testSample)\n    print('\\nTrain-sample instances number: ', trainSample)\n    print('\\nDirectory Input List to compete sourced from Kaggle',directoryListInput)\n    print('\\nSample Files per directory',KaggleInputList)\n    \n    #pairSample = [directoryListInput, KaggleInputList]\n    \n    return directoryListInput, KaggleInputList\n\n# Input training and testing instances number for sampling.\n\ntrainSample = input('\\nPlease insert a sample-number of instances for training (0-7500) non-test-images:')\ntrainSample = int(trainSample)\ntestSample = input('\\nPlease insert a sample-number of instances for testing (0-5000) test-images:')\ntestSample = int(testSample)\n\n#trainSample = 10\n#testSample = 10\ndirectoryListInput, KaggleInputList = SampleFilesToCompete(directoryListInput,trainSample,testSample)\n              \n\n\"\"\"\nCreate directories to prototype with input image files of the competition data\n\"\"\"\n\n# Required directories\n\npath_generic1 = '/kaggle/working/input/'\npath_generic2 = '/kaggle/working/input/inputtoprototype-alaska2imagesteganalysis/'\n\npath_Cover = '/kaggle/working/input/inputtoprototype-alaska2imagesteganalysis/Cover/'\npath_JMiPOD = '/kaggle/working/input/inputtoprototype-alaska2imagesteganalysis/JMiPOD/'\npath_JUNIWARD = '/kaggle/working/input/inputtoprototype-alaska2imagesteganalysis/JUNIWARD/'\npath_UERD = '/kaggle/working/input/inputtoprototype-alaska2imagesteganalysis/UERD/'\npath_Test = '/kaggle/working/input/inputtoprototype-alaska2imagesteganalysis/Test/'\n\ndirectoryList = [path_generic1]+[path_generic2]+[path_Cover]+[path_JMiPOD]+[path_JUNIWARD]+[path_UERD]+[path_Test]\ndirectoryListG = [path_Cover]+[path_JMiPOD]+[path_JUNIWARD]+[path_UERD]+[path_Test]\n\nprint('\\n*******************************************************************************************************************')\nprint('Required directories to create')\nprint('*******************************************************************************************************************')\nprint('\\nDirectories to create:','\\n', directoryList)\n\n# Function directoryCreation(directoryList)\n\ndef directoryCreation(directoryList):\n    \n    import os\n\n    print('\\n*******************************************************************************************************************')\n    print('Created or existing directories')\n    print('*******************************************************************************************************************')\n    \n    for i in directoryList:\n    \n        try:\n            os.mkdir(i)\n        except FileExistsError: # directory already exists\n            pass\n        \n        print('\\n Created or existing directory: ',i)\n    \n    print('\\nDirectories are created and available to upload data...')\n    \n    return\n\n# Run\n\ndirectoryCreation(directoryList)\ndirectoryList.remove(path_generic1)\ndirectoryList.remove(path_generic2)\n\n\"\"\"\nLoad Input image files to prototype\n\"\"\"\n\n# Function\n\ndef SampleFilesExtraction(directoryListInput, directoryListOutput, fileList):\n\n    # Set working directory\n    \n    # Copy task\n    \n    # Based partially in Copy all JPG file in a directory to another directory in Python? (n.d.).\n    \n    print('\\n*******************************************************************************************************************')\n    print('Kaggle images extraction for sampling')\n    print('*******************************************************************************************************************')\n    print('\\n')\n    \n    import shutil, os\n    \n    for i in range (0,len(directoryListInput)):\n    \n        print('Origin Directory: ', directoryListInput[i])\n        print('Destination Directory: ', directoryListOutput[i])\n    \n        for f in fileList[i]:\n\n            try: \n                # Set origin directory\n                origin = directoryListInput[i]\n                os.chdir(origin)\n\n                # Copy task\n                # Based partially in Copy all JPG file in a directory to another directory in Python? (n.d.).\n                destination = directoryListOutput[i]\n                shutil.copy(f, destination)\n            \n            except FileExistsError: # file already exists\n                os.removedirs(f)\n                \n                # Set origin directory\n                origin = directoryListInput[i]\n                os.chdir(origin)\n\n                # Copy task\n                # Based partially in Copy all JPG file in a directory to another directory in Python? (n.d.).\n                destination = directoryListOutput[i]\n                shutil.copy(f, destination)\n                \n                pass\n            \n            print('  Extracted File: ', f)\n        print('\\n')\n    \n    return\n\n# Run\ndirectoryListOutput = directoryList\ndirectoryList, fileList = directoryListInput, KaggleInputList\nSampleFilesExtraction(directoryListInput, directoryListOutput, fileList)\n\n\n\"\"\"\nReference:\n\nCopy all JPG file in a directory to another directory in Python? (n.d.). Retrieved from\n    https://stackoverflow.com/questions/11903037/copy-all-jpg-file-in-a-directory-to-another-directory-in-python\n\n\"\"\"\n","execution_count":null,"outputs":[]}],"metadata":{"kernelspec":{"language":"python","display_name":"Python 3","name":"python3"},"language_info":{"pygments_lexer":"ipython3","nbconvert_exporter":"python","version":"3.6.4","file_extension":".py","codemirror_mode":{"name":"ipython","version":3},"name":"python","mimetype":"text/x-python"}},"nbformat":4,"nbformat_minor":4}