{"cells":[{"metadata":{},"cell_type":"markdown","source":"This notebook aims to classify all JPG images by its quality (75, 90, 95) and save it into a csv file.\n","execution_count":null},{"metadata":{"_uuid":"d629ff2d2480ee46fbb7e2d37f6b5fab8052498a","_cell_guid":"79c7e3d0-c299-4dcb-8224-4455121ee9b0","trusted":true},"cell_type":"code","source":"!apt-get update\n!apt -y install imagemagick","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"from typing import List\nfrom glob import glob\nimport os\nimport pandas as pd\n\nworking_dir: str = \"../input/alaska2-image-steganalysis/\"\n\n    \ntraining_images: List[str] = list(glob(os.path.join(working_dir, \"*\", \"*.jpg\")))\ndf_train = pd.DataFrame({\"file_path\": training_images})\ndf_train[\"image\"] = df_train[\"file_path\"].apply(lambda x: os.path.basename(x))\ndf_train[\"kind\"] = df_train[\"file_path\"].apply(lambda x: os.path.split(os.path.dirname(x))[-1])\ndf_train","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"from typing import Optional\n\ndef func(file_path: str) -> Optional[float]:\n    output = os.popen(f\"identify -format '%Q' {file_path}\").read()\n    return output\n","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"from multiprocessing import Pool\nwith Pool(4) as p:\n    ret = list(p.map(func, training_images))","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"df_train[\"quality\"] = ret\ndf_train[\"quality\"] = df_train[\"quality\"].astype(\"float\")\ndf_train.sort_values(\"image\", inplace=True)\ndf_train[[\"image\", \"kind\", \"quality\"]].to_csv(\"image_quality.csv\", index=False, float_format='%.0f')","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"df_train[\"quality\"].value_counts(normalize=False)","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}