{"cells":[{"metadata":{"trusted":true},"cell_type":"code","source":"# import libraries\nimport os\nimport numpy as np\nimport cv2\nimport pandas as pd\nimport matplotlib.pyplot as plt\nimport matplotlib.image as mpimg\n","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"Now load filenaes in Pandas\n"},{"metadata":{"trusted":true},"cell_type":"code","source":"# create list of all directories\nbase_dir = '/kaggle/input/alaska2-image-steganalysis/'\nimage_dirs = ['Cover','JUNIWARD', 'JMiPOD',  'UERD']\n\n\nall_files = {}\nfor id in image_dirs:\n    if id==\"Test\":\n        continue\n    lst = []\n    for file in os.listdir(os.path.join(base_dir, id)):\n        lst.append(file)\n    all_files[id]=lst\n\nfiles_df = pd.DataFrame(all_files, columns=all_files.keys())\nfiles_df.head(5)","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"Plot images for visual inspection"},{"metadata":{"trusted":true},"cell_type":"code","source":"\n\nfig, axes = plt.subplots(nrows=4, ncols=4, figsize=(16, 16))\nfig.suptitle(\"Visual comparison of files\")\nimage_list = []\nfor d in image_dirs:\n    for f in files_df['Cover'].head(4):\n        image_list.append(os.path.join(base_dir,d, f))\n#print(image_list)\n\nfor ax, fname in zip(axes.flatten(), image_list) :\n    #print(fname)\n    img = mpimg.imread(fname)\n    ax.imshow(img)\n    ax.set_title(fname.split(\"/\")[-1])\n\nfor row, folder_name in zip(axes[:,0], image_dirs):\n        row.set_ylabel(folder_name)\nplt.show()\n","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"Let's try to see the difference between images. Multiplying with large number to make little brighter.\n\nWe can see some white dots in the differential images, which seems to refer to how different methods change the actual image to add data."},{"metadata":{"trusted":true},"cell_type":"code","source":"sample_image = \"41732.jpg\"\n\n\n#image_dirs = ['Cover','JUNIWARD', 'JMiPOD',  'UERD']\nimg_c = mpimg.imread(os.path.join(base_dir,\"Cover\",sample_image))\nimg_u = mpimg.imread(os.path.join(base_dir,\"UERD\",sample_image))\nimg_j = mpimg.imread(os.path.join(base_dir,\"JUNIWARD\",sample_image))\nimg_jm = mpimg.imread(os.path.join(base_dir,\"JMiPOD\",sample_image))\n\n\n\nfig, ax = plt.subplots(2,2, figsize=(10,10))\nfig.suptitle(\"Differential pixels visualization\")\nax[0,0].imshow(img_c)\nax[0,1].imshow((img_c-img_u)*10000)\nax[1,0].imshow((img_c-img_j)*10000)\nax[1,1].imshow((img_c-img_jm)*10000)\n\nax[0,0].set_title(\"Original image\")\nax[0,1].set_title(\"UERD differential\")\nax[1,0].set_title(\"JUNIWARD differential\")\nax[1,1].set_title(\"JMiPOD differential\")\nplt.show()\n","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"sample_image = \"00014.jpg\"\n\n\n#image_dirs = ['Cover','JUNIWARD', 'JMiPOD',  'UERD']\nimg_c = mpimg.imread(os.path.join(base_dir,\"Cover\",sample_image))\nimg_u = mpimg.imread(os.path.join(base_dir,\"UERD\",sample_image))\nimg_j = mpimg.imread(os.path.join(base_dir,\"JUNIWARD\",sample_image))\nimg_jm = mpimg.imread(os.path.join(base_dir,\"JMiPOD\",sample_image))\n\n\n\nfig, ax = plt.subplots(2,2, figsize=(10,10))\nfig.suptitle(\"Differential pixels visualization\")\nax[0,0].imshow(img_c)\nax[0,1].imshow((img_c-img_u))\nax[1,0].imshow((img_c-img_j))\nax[1,1].imshow((img_c-img_jm))\n\nax[0,0].set_title(\"Original image\")\nax[0,1].set_title(\"UERD differential\")\nax[1,0].set_title(\"JUNIWARD differential\")\nax[1,1].set_title(\"JMiPOD differential\")\nplt.show()\n","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"sample_image = \"12314.jpg\"\n\n\n#image_dirs = ['Cover','JUNIWARD', 'JMiPOD',  'UERD']\nimg_c = mpimg.imread(os.path.join(base_dir,\"Cover\",sample_image))\nimg_u = mpimg.imread(os.path.join(base_dir,\"UERD\",sample_image))\nimg_j = mpimg.imread(os.path.join(base_dir,\"JUNIWARD\",sample_image))\nimg_jm = mpimg.imread(os.path.join(base_dir,\"JMiPOD\",sample_image))\n\n\n\nfig, ax = plt.subplots(2,2, figsize=(10,10))\nfig.suptitle(\"Differential pixels visualization\")\nax[0,0].imshow(img_c)\nax[0,1].imshow((img_c-img_u))\nax[1,0].imshow((img_c-img_j))\nax[1,1].imshow((img_c-img_jm))\n\nax[0,0].set_title(\"Original image\")\nax[0,1].set_title(\"UERD differential\")\nax[1,0].set_title(\"JUNIWARD differential\")\nax[1,1].set_title(\"JMiPOD differential\")\nplt.show()","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}