diff --git a/Images/cxr/cxr10_cxr.png b/Images/cxr/cxr10_cxr.png new file mode 100644 index 0000000000000000000000000000000000000000..4487db5cfbc1d2d82f4114300421d8d29313631f Binary files /dev/null and b/Images/cxr/cxr10_cxr.png differ diff --git a/Images/cxr/cxr1_cxr.png b/Images/cxr/cxr1_cxr.png new file mode 100644 index 0000000000000000000000000000000000000000..f4932048e8b9c1af36a4a3a0e293e10d7cc8a397 Binary files /dev/null and b/Images/cxr/cxr1_cxr.png differ diff --git a/Images/cxr/cxr2_cxr.png b/Images/cxr/cxr2_cxr.png new file mode 100644 index 0000000000000000000000000000000000000000..f871095e74756c3a0c15f6ae6a402acf41789184 Binary files /dev/null and b/Images/cxr/cxr2_cxr.png differ diff --git a/Images/cxr/cxr3_cxr.png b/Images/cxr/cxr3_cxr.png new file mode 100644 index 0000000000000000000000000000000000000000..e75ef6e1445568e9f750d27c84f3ab3f7c01b3ed Binary files /dev/null and b/Images/cxr/cxr3_cxr.png differ diff --git a/Images/cxr/cxr4_cxr.png b/Images/cxr/cxr4_cxr.png new file mode 100644 index 0000000000000000000000000000000000000000..aa6e4a61441594c230c878e7932eec44b84b420d Binary files /dev/null and b/Images/cxr/cxr4_cxr.png differ diff --git a/Images/cxr/cxr5_cxr.png b/Images/cxr/cxr5_cxr.png new file mode 100644 index 0000000000000000000000000000000000000000..b9f876d29a6d4cbbda45870ad491ba0a0a893833 Binary files /dev/null and b/Images/cxr/cxr5_cxr.png differ diff --git a/Images/cxr/cxr6_cxr.png b/Images/cxr/cxr6_cxr.png new file mode 100644 index 0000000000000000000000000000000000000000..c6413de6f3ff6e1b6d94b8e46819f2f389f39f6f Binary files /dev/null and b/Images/cxr/cxr6_cxr.png differ diff --git a/Images/cxr/cxr7_cxr.png b/Images/cxr/cxr7_cxr.png new file mode 100644 index 0000000000000000000000000000000000000000..8e8188c28645715f1cbdc77e83b649a229a7a44c Binary files /dev/null and b/Images/cxr/cxr7_cxr.png differ diff --git a/Images/cxr/cxr8_cxr.png b/Images/cxr/cxr8_cxr.png new file mode 100644 index 0000000000000000000000000000000000000000..1c446812325043ace48192b270397ba891a01e19 Binary files /dev/null and b/Images/cxr/cxr8_cxr.png differ diff --git a/Images/cxr/cxr9_cxr.png b/Images/cxr/cxr9_cxr.png new file mode 100644 index 0000000000000000000000000000000000000000..1880a4b77e16dc3fcd99d46ae12fbbf55362f566 Binary files /dev/null and b/Images/cxr/cxr9_cxr.png differ diff --git a/Images/lung_noised/.DS_Store b/Images/lung_noised/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..5396f49ea4a2ca92592b3817c342623bdb2c322e Binary files /dev/null and b/Images/lung_noised/.DS_Store differ diff --git a/Images/lung_noised/cxr10_lung_noised_1.png b/Images/lung_noised/cxr10_lung_noised_1.png new file mode 100644 index 0000000000000000000000000000000000000000..57a205a36e5285acf6fc9442feeedbc2c913c2a8 Binary files /dev/null and b/Images/lung_noised/cxr10_lung_noised_1.png differ diff --git a/Images/lung_noised/cxr10_lung_noised_2.png b/Images/lung_noised/cxr10_lung_noised_2.png new file mode 100644 index 0000000000000000000000000000000000000000..4330b246160cd55659e2ca791515b6c7655a415a Binary files /dev/null and b/Images/lung_noised/cxr10_lung_noised_2.png differ diff --git a/Images/lung_noised/cxr10_lung_noised_3.png b/Images/lung_noised/cxr10_lung_noised_3.png new file mode 100644 index 0000000000000000000000000000000000000000..58de8db1dca37036005e5538daa39f80a400f91a Binary files /dev/null and b/Images/lung_noised/cxr10_lung_noised_3.png differ diff --git a/Images/lung_noised/cxr1_lung_noised_1.png b/Images/lung_noised/cxr1_lung_noised_1.png new file mode 100644 index 0000000000000000000000000000000000000000..9c3c64489c29ace16f0d2ecdcb83c7d17e6d08d9 Binary files /dev/null and b/Images/lung_noised/cxr1_lung_noised_1.png differ diff --git a/Images/lung_noised/cxr1_lung_noised_2.png b/Images/lung_noised/cxr1_lung_noised_2.png new file mode 100644 index 0000000000000000000000000000000000000000..441316e9591b0ac36f41adfa7e3d3c08705f7473 Binary files /dev/null and b/Images/lung_noised/cxr1_lung_noised_2.png differ diff --git a/Images/lung_noised/cxr1_lung_noised_3.png b/Images/lung_noised/cxr1_lung_noised_3.png new file mode 100644 index 0000000000000000000000000000000000000000..88421ca9f2902623204385fc14fdeb9949a917b8 Binary files /dev/null and b/Images/lung_noised/cxr1_lung_noised_3.png differ diff --git a/Images/lung_noised/cxr2_lung_noised_1.png b/Images/lung_noised/cxr2_lung_noised_1.png new file mode 100644 index 0000000000000000000000000000000000000000..0af1e9616154e2532822ff2caf4663f2b5e36c44 Binary files /dev/null and b/Images/lung_noised/cxr2_lung_noised_1.png differ diff --git a/Images/lung_noised/cxr2_lung_noised_2.png b/Images/lung_noised/cxr2_lung_noised_2.png new file mode 100644 index 0000000000000000000000000000000000000000..146fa30c0b22ec1967d6f6057825d39785e92abb Binary files /dev/null and b/Images/lung_noised/cxr2_lung_noised_2.png differ diff --git a/Images/lung_noised/cxr2_lung_noised_3.png b/Images/lung_noised/cxr2_lung_noised_3.png new file mode 100644 index 0000000000000000000000000000000000000000..a66a5e94242a89bb6bfeabb7c5c931cf64e421d1 Binary files /dev/null and b/Images/lung_noised/cxr2_lung_noised_3.png differ diff --git a/Images/lung_noised/cxr3_lung_noised_1.png b/Images/lung_noised/cxr3_lung_noised_1.png new file mode 100644 index 0000000000000000000000000000000000000000..9f54567498898c89e78fd5e8003d3599a570694e Binary files /dev/null and b/Images/lung_noised/cxr3_lung_noised_1.png differ diff --git a/Images/lung_noised/cxr3_lung_noised_2.png b/Images/lung_noised/cxr3_lung_noised_2.png new file mode 100644 index 0000000000000000000000000000000000000000..4b3f5053a743ab8215cc319a51bbde83ccd4a8f7 Binary files /dev/null and b/Images/lung_noised/cxr3_lung_noised_2.png differ diff --git a/Images/lung_noised/cxr3_lung_noised_3.png b/Images/lung_noised/cxr3_lung_noised_3.png new file mode 100644 index 0000000000000000000000000000000000000000..ad8cb1659f947ac77fe0d049760af9eba51479ef Binary files /dev/null and b/Images/lung_noised/cxr3_lung_noised_3.png differ diff --git a/Images/lung_noised/cxr4_lung_noised_1.png b/Images/lung_noised/cxr4_lung_noised_1.png new file mode 100644 index 0000000000000000000000000000000000000000..fb1250cb3621aefefd134d4f371b6fd8c8c9a918 Binary files /dev/null and b/Images/lung_noised/cxr4_lung_noised_1.png differ diff --git a/Images/lung_noised/cxr4_lung_noised_2.png b/Images/lung_noised/cxr4_lung_noised_2.png new file mode 100644 index 0000000000000000000000000000000000000000..1c9c801aa1b56fc1efcb2e003bbc82704edbc01a Binary files /dev/null and b/Images/lung_noised/cxr4_lung_noised_2.png differ diff --git a/Images/lung_noised/cxr4_lung_noised_3.png b/Images/lung_noised/cxr4_lung_noised_3.png new file mode 100644 index 0000000000000000000000000000000000000000..86bbe3626469a0c71cb55b38aedcee13dce612e7 Binary files /dev/null and b/Images/lung_noised/cxr4_lung_noised_3.png differ diff --git a/Images/lung_noised/cxr5_lung_noised_1.png b/Images/lung_noised/cxr5_lung_noised_1.png new file mode 100644 index 0000000000000000000000000000000000000000..290a31d6740dfb6e1af8b4ee2c0b48d8a59f54c6 Binary files /dev/null and b/Images/lung_noised/cxr5_lung_noised_1.png differ diff --git a/Images/lung_noised/cxr5_lung_noised_2.png b/Images/lung_noised/cxr5_lung_noised_2.png new file mode 100644 index 0000000000000000000000000000000000000000..0f40e5ab6479bfc98424c874db33cbb7460af51f Binary files /dev/null and b/Images/lung_noised/cxr5_lung_noised_2.png differ diff --git a/Images/lung_noised/cxr5_lung_noised_3.png b/Images/lung_noised/cxr5_lung_noised_3.png new file mode 100644 index 0000000000000000000000000000000000000000..d4fdb8a6565230d1449384dae866adbfed749cec Binary files /dev/null and b/Images/lung_noised/cxr5_lung_noised_3.png differ diff --git a/Images/lung_noised/cxr6_lung_noised_1.png b/Images/lung_noised/cxr6_lung_noised_1.png new file mode 100644 index 0000000000000000000000000000000000000000..0094cf0c4defe4fdc45d501a27baf05a2f4f7f27 Binary files /dev/null and b/Images/lung_noised/cxr6_lung_noised_1.png differ diff --git a/Images/lung_noised/cxr6_lung_noised_2.png b/Images/lung_noised/cxr6_lung_noised_2.png new file mode 100644 index 0000000000000000000000000000000000000000..ecfe54d45df57ad6978c1316a5601cd736deeb02 Binary files /dev/null and b/Images/lung_noised/cxr6_lung_noised_2.png differ diff --git a/Images/lung_noised/cxr6_lung_noised_3.png b/Images/lung_noised/cxr6_lung_noised_3.png new file mode 100644 index 0000000000000000000000000000000000000000..b2423d5afea322dda4bcc565b13b3024325fbea1 Binary files /dev/null and b/Images/lung_noised/cxr6_lung_noised_3.png differ diff --git a/Images/lung_noised/cxr7_lung_noised_1.png b/Images/lung_noised/cxr7_lung_noised_1.png new file mode 100644 index 0000000000000000000000000000000000000000..51e1be17e5a1116b76ad174b5b8a62ce0087b1a8 Binary files /dev/null and b/Images/lung_noised/cxr7_lung_noised_1.png differ diff --git a/Images/lung_noised/cxr7_lung_noised_2.png b/Images/lung_noised/cxr7_lung_noised_2.png new file mode 100644 index 0000000000000000000000000000000000000000..80e172fc33f4dd61ff2ffb1b0e99133231c502a9 Binary files /dev/null and b/Images/lung_noised/cxr7_lung_noised_2.png differ diff --git a/Images/lung_noised/cxr7_lung_noised_3.png b/Images/lung_noised/cxr7_lung_noised_3.png new file mode 100644 index 0000000000000000000000000000000000000000..8dd568e219568675706c179d3c5b1bec6372b5d8 Binary files /dev/null and b/Images/lung_noised/cxr7_lung_noised_3.png differ diff --git a/Images/lung_noised/cxr8_lung_noised_1.png b/Images/lung_noised/cxr8_lung_noised_1.png new file mode 100644 index 0000000000000000000000000000000000000000..f785f847f9ffc52c0581f07297d4a205011f3cb1 Binary files /dev/null and b/Images/lung_noised/cxr8_lung_noised_1.png differ diff --git a/Images/lung_noised/cxr8_lung_noised_2.png b/Images/lung_noised/cxr8_lung_noised_2.png new file mode 100644 index 0000000000000000000000000000000000000000..9497234a678716013d9781bf34301ef4b0017e04 Binary files /dev/null and b/Images/lung_noised/cxr8_lung_noised_2.png differ diff --git a/Images/lung_noised/cxr8_lung_noised_3.png b/Images/lung_noised/cxr8_lung_noised_3.png new file mode 100644 index 0000000000000000000000000000000000000000..ebb9c36dc2e5b8d31335c5f34d3e8f5a69ba1e57 Binary files /dev/null and b/Images/lung_noised/cxr8_lung_noised_3.png differ diff --git a/Images/lung_noised/cxr9_lung_noised_1.png b/Images/lung_noised/cxr9_lung_noised_1.png new file mode 100644 index 0000000000000000000000000000000000000000..e5c06b54893666e9810ee8521b554eb07fbb5def Binary files /dev/null and b/Images/lung_noised/cxr9_lung_noised_1.png differ diff --git a/Images/lung_noised/cxr9_lung_noised_2.png b/Images/lung_noised/cxr9_lung_noised_2.png new file mode 100644 index 0000000000000000000000000000000000000000..470d6481d669cf713777385565c1d6953590de1f Binary files /dev/null and b/Images/lung_noised/cxr9_lung_noised_2.png differ diff --git a/Images/lung_noised/cxr9_lung_noised_3.png b/Images/lung_noised/cxr9_lung_noised_3.png new file mode 100644 index 0000000000000000000000000000000000000000..f7196cf5aa078051d1da622c78f1f56e08fb74fb Binary files /dev/null and b/Images/lung_noised/cxr9_lung_noised_3.png differ diff --git a/Images/mask/.DS_Store b/Images/mask/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..b352bc38ad0caca2dd9b5fda9b0cbae127875b9c Binary files /dev/null and b/Images/mask/.DS_Store differ diff --git a/Images/mask/cxr10_mask.png b/Images/mask/cxr10_mask.png new file mode 100644 index 0000000000000000000000000000000000000000..1b49e1f2a0788ffb8140f14f26c250166231bc18 Binary files /dev/null and b/Images/mask/cxr10_mask.png differ diff --git a/Images/mask/cxr1_mask.png b/Images/mask/cxr1_mask.png new file mode 100644 index 0000000000000000000000000000000000000000..5bb592f3676f26fdffe7705c46298bdc30cbd456 Binary files /dev/null and b/Images/mask/cxr1_mask.png differ diff --git a/Images/mask/cxr2_mask.png b/Images/mask/cxr2_mask.png new file mode 100644 index 0000000000000000000000000000000000000000..d718f2d953148e314004581608dea468fb143069 Binary files /dev/null and b/Images/mask/cxr2_mask.png differ diff --git a/Images/mask/cxr3_mask.png b/Images/mask/cxr3_mask.png new file mode 100644 index 0000000000000000000000000000000000000000..4673bb77a4a7d8debf481d31adf6ac5c33be9fe1 Binary files /dev/null and b/Images/mask/cxr3_mask.png differ diff --git a/Images/mask/cxr4_mask.png b/Images/mask/cxr4_mask.png new file mode 100644 index 0000000000000000000000000000000000000000..f2e337bc8734df787649793b74392d7c7a27512d Binary files /dev/null and b/Images/mask/cxr4_mask.png differ diff --git a/Images/mask/cxr5_mask.png b/Images/mask/cxr5_mask.png new file mode 100644 index 0000000000000000000000000000000000000000..627dbc4994a71d301787b5a8b0395c5253fc0c4a Binary files /dev/null and b/Images/mask/cxr5_mask.png differ diff --git a/Images/mask/cxr6_mask.png b/Images/mask/cxr6_mask.png new file mode 100644 index 0000000000000000000000000000000000000000..19de06d25c85ec71f4dd89f09d33ee2fd8b1292d Binary files /dev/null and b/Images/mask/cxr6_mask.png differ diff --git a/Images/mask/cxr7_mask.png b/Images/mask/cxr7_mask.png new file mode 100644 index 0000000000000000000000000000000000000000..98d99c85eb56f425ab46d098c64ad995b0bceebb Binary files /dev/null and b/Images/mask/cxr7_mask.png differ diff --git a/Images/mask/cxr8_mask.png b/Images/mask/cxr8_mask.png new file mode 100644 index 0000000000000000000000000000000000000000..a6ffbf0ffd828d02739e5a92840047969460ec05 Binary files /dev/null and b/Images/mask/cxr8_mask.png differ diff --git a/Images/mask/cxr9_mask.png b/Images/mask/cxr9_mask.png new file mode 100644 index 0000000000000000000000000000000000000000..9569be8d5373b0e7240ba0a93e184d35061c9cb0 Binary files /dev/null and b/Images/mask/cxr9_mask.png differ diff --git a/Images/textured_cxr/.DS_Store b/Images/textured_cxr/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..6ca6d1e2c68244486cc71e33e508e825efe64132 Binary files /dev/null and b/Images/textured_cxr/.DS_Store differ diff --git a/Images/textured_cxr/cxr10_textured_1.png b/Images/textured_cxr/cxr10_textured_1.png new file mode 100644 index 0000000000000000000000000000000000000000..9dad3d00a9bee4cdbbab3863db312bcd17378bb4 Binary files /dev/null and b/Images/textured_cxr/cxr10_textured_1.png differ diff --git a/Images/textured_cxr/cxr10_textured_2.png b/Images/textured_cxr/cxr10_textured_2.png new file mode 100644 index 0000000000000000000000000000000000000000..728caf4b17315a5241fa6cbf5685b29184d4972d Binary files /dev/null and b/Images/textured_cxr/cxr10_textured_2.png differ diff --git a/Images/textured_cxr/cxr10_textured_3.png b/Images/textured_cxr/cxr10_textured_3.png new file mode 100644 index 0000000000000000000000000000000000000000..624c10b48146e7bedb272aeaf5911f538c0544c7 Binary files /dev/null and b/Images/textured_cxr/cxr10_textured_3.png differ diff --git a/Images/textured_cxr/cxr1_textured_1.png b/Images/textured_cxr/cxr1_textured_1.png new file mode 100644 index 0000000000000000000000000000000000000000..13ace995265c75b19e67f90c70b427c17b4f8ddc Binary files /dev/null and b/Images/textured_cxr/cxr1_textured_1.png differ diff --git a/Images/textured_cxr/cxr1_textured_2.png b/Images/textured_cxr/cxr1_textured_2.png new file mode 100644 index 0000000000000000000000000000000000000000..fa86b40ffb31c16664faa3a0f65c40f6dccfd5ad Binary files /dev/null and b/Images/textured_cxr/cxr1_textured_2.png differ diff --git a/Images/textured_cxr/cxr1_textured_3.png b/Images/textured_cxr/cxr1_textured_3.png new file mode 100644 index 0000000000000000000000000000000000000000..78705e6756a2564e85e3c2786036d72a554a43ca Binary files /dev/null and b/Images/textured_cxr/cxr1_textured_3.png differ diff --git a/Images/textured_cxr/cxr2_textured_1.png b/Images/textured_cxr/cxr2_textured_1.png new file mode 100644 index 0000000000000000000000000000000000000000..58c1c1d61ebc4b7f48de9dadc2cc10897aec23b7 Binary files /dev/null and b/Images/textured_cxr/cxr2_textured_1.png differ diff --git a/Images/textured_cxr/cxr2_textured_2.png b/Images/textured_cxr/cxr2_textured_2.png new file mode 100644 index 0000000000000000000000000000000000000000..3a275c6fc7003bb126153bf620ba613f6d529515 Binary files /dev/null and b/Images/textured_cxr/cxr2_textured_2.png differ diff --git a/Images/textured_cxr/cxr2_textured_3.png b/Images/textured_cxr/cxr2_textured_3.png new file mode 100644 index 0000000000000000000000000000000000000000..414c9c6cb0fc74115b7d15315a4f508b9d21e1f7 Binary files /dev/null and b/Images/textured_cxr/cxr2_textured_3.png differ diff --git a/Images/textured_cxr/cxr3_textured_1.png b/Images/textured_cxr/cxr3_textured_1.png new file mode 100644 index 0000000000000000000000000000000000000000..5a5780374a27a5387f1df6eb815c60d28f73fd0b Binary files /dev/null and b/Images/textured_cxr/cxr3_textured_1.png differ diff --git a/Images/textured_cxr/cxr3_textured_2.png b/Images/textured_cxr/cxr3_textured_2.png new file mode 100644 index 0000000000000000000000000000000000000000..bbc4ab0bf4141e4bff82273b88255e2d24dcf59a Binary files /dev/null and b/Images/textured_cxr/cxr3_textured_2.png differ diff --git a/Images/textured_cxr/cxr3_textured_3.png b/Images/textured_cxr/cxr3_textured_3.png new file mode 100644 index 0000000000000000000000000000000000000000..89633fa16c4e338651f9ecd2846692579690c9db Binary files /dev/null and b/Images/textured_cxr/cxr3_textured_3.png differ diff --git a/Images/textured_cxr/cxr4_textured_1.png b/Images/textured_cxr/cxr4_textured_1.png new file mode 100644 index 0000000000000000000000000000000000000000..e47e22d433bb920be4c1314982feaecb8863a609 Binary files /dev/null and b/Images/textured_cxr/cxr4_textured_1.png differ diff --git a/Images/textured_cxr/cxr4_textured_2.png b/Images/textured_cxr/cxr4_textured_2.png new file mode 100644 index 0000000000000000000000000000000000000000..6675c880fe068c90dc47e1175c80bc444f2e0def Binary files /dev/null and b/Images/textured_cxr/cxr4_textured_2.png differ diff --git a/Images/textured_cxr/cxr4_textured_3.png b/Images/textured_cxr/cxr4_textured_3.png new file mode 100644 index 0000000000000000000000000000000000000000..a4cb85b46305e49d2166298e5023426f06346ae0 Binary files /dev/null and b/Images/textured_cxr/cxr4_textured_3.png differ diff --git a/Images/textured_cxr/cxr5_textured_1.png b/Images/textured_cxr/cxr5_textured_1.png new file mode 100644 index 0000000000000000000000000000000000000000..2324c0cea33b2cc7694aa6d4012c3895633d8cd4 Binary files /dev/null and b/Images/textured_cxr/cxr5_textured_1.png differ diff --git a/Images/textured_cxr/cxr5_textured_2.png b/Images/textured_cxr/cxr5_textured_2.png new file mode 100644 index 0000000000000000000000000000000000000000..4b18e4499ca1b768828c4d3681933899a7f64386 Binary files /dev/null and b/Images/textured_cxr/cxr5_textured_2.png differ diff --git a/Images/textured_cxr/cxr5_textured_3.png b/Images/textured_cxr/cxr5_textured_3.png new file mode 100644 index 0000000000000000000000000000000000000000..4b3d287aa8340aff63fd823c89f9cb36c7100a04 Binary files /dev/null and b/Images/textured_cxr/cxr5_textured_3.png differ diff --git a/Images/textured_cxr/cxr6_textured_1.png b/Images/textured_cxr/cxr6_textured_1.png new file mode 100644 index 0000000000000000000000000000000000000000..437783b654c54bcf45b639d688298f24c32c3e1c Binary files /dev/null and b/Images/textured_cxr/cxr6_textured_1.png differ diff --git a/Images/textured_cxr/cxr6_textured_2.png b/Images/textured_cxr/cxr6_textured_2.png new file mode 100644 index 0000000000000000000000000000000000000000..f22e966b0038f5a1d7abb9ceaf57eacea063f21a Binary files /dev/null and b/Images/textured_cxr/cxr6_textured_2.png differ diff --git a/Images/textured_cxr/cxr6_textured_3.png b/Images/textured_cxr/cxr6_textured_3.png new file mode 100644 index 0000000000000000000000000000000000000000..59d16e6168305ae739f96ac0de7420a462f30c9b Binary files /dev/null and b/Images/textured_cxr/cxr6_textured_3.png differ diff --git a/Images/textured_cxr/cxr7_textured_1.png b/Images/textured_cxr/cxr7_textured_1.png new file mode 100644 index 0000000000000000000000000000000000000000..99ad81dfa604fcc38904d03a118a44d81fd238af Binary files /dev/null and b/Images/textured_cxr/cxr7_textured_1.png differ diff --git a/Images/textured_cxr/cxr7_textured_2.png b/Images/textured_cxr/cxr7_textured_2.png new file mode 100644 index 0000000000000000000000000000000000000000..71448bbaae63b8be0965a88a1a4a3a46d1b93114 Binary files /dev/null and b/Images/textured_cxr/cxr7_textured_2.png differ diff --git a/Images/textured_cxr/cxr7_textured_3.png b/Images/textured_cxr/cxr7_textured_3.png new file mode 100644 index 0000000000000000000000000000000000000000..0901f487773d62fcba61f29071d6291b69d4048e Binary files /dev/null and b/Images/textured_cxr/cxr7_textured_3.png differ diff --git a/Images/textured_cxr/cxr8_textured_1.png b/Images/textured_cxr/cxr8_textured_1.png new file mode 100644 index 0000000000000000000000000000000000000000..0c0f85b4dfd0f1ad7a214fd8bde6caffb2b02470 Binary files /dev/null and b/Images/textured_cxr/cxr8_textured_1.png differ diff --git a/Images/textured_cxr/cxr8_textured_2.png b/Images/textured_cxr/cxr8_textured_2.png new file mode 100644 index 0000000000000000000000000000000000000000..9adb20a25f7560f1460ae28402e02c34ec2100e5 Binary files /dev/null and b/Images/textured_cxr/cxr8_textured_2.png differ diff --git a/Images/textured_cxr/cxr8_textured_3.png b/Images/textured_cxr/cxr8_textured_3.png new file mode 100644 index 0000000000000000000000000000000000000000..fcda428035e94e632a7a2f8762cac9e741bc205c Binary files /dev/null and b/Images/textured_cxr/cxr8_textured_3.png differ diff --git a/Images/textured_cxr/cxr9_textured_1.png b/Images/textured_cxr/cxr9_textured_1.png new file mode 100644 index 0000000000000000000000000000000000000000..c0a0b44a8b9bc22c9f2bdad28083362be7591576 Binary files /dev/null and b/Images/textured_cxr/cxr9_textured_1.png differ diff --git a/Images/textured_cxr/cxr9_textured_2.png b/Images/textured_cxr/cxr9_textured_2.png new file mode 100644 index 0000000000000000000000000000000000000000..cdc71d307734396d87c3558804e60df3901c466b Binary files /dev/null and b/Images/textured_cxr/cxr9_textured_2.png differ diff --git a/Images/textured_cxr/cxr9_textured_3.png b/Images/textured_cxr/cxr9_textured_3.png new file mode 100644 index 0000000000000000000000000000000000000000..ae07df3dafa05a86bf9eae6e429b2f78a1882d84 Binary files /dev/null and b/Images/textured_cxr/cxr9_textured_3.png differ diff --git a/app.py b/app.py new file mode 100644 index 0000000000000000000000000000000000000000..2a1d3ff54c5c5a6ab3b4611f370aad617a873446 --- /dev/null +++ b/app.py @@ -0,0 +1,204 @@ +import gradio as gr +import os +import numpy as np +import cv2 as cv +import csv + +def set_min_dense_1(max_dense_0): + global scaled_thresh1 + print("max_dense_0", max_dense_0) + scaled_thresh1 = int(max_dense_0) * max_val/255 + dense_0 = np.where(textured_cxr=scaled_thresh1)), textured_cxr, 0) + return max_dense_0, dense_0, dense_1 + +def set_min_dense_2(max_dense_1): + global scaled_thresh2 + print("max_dense_1", max_dense_1) + scaled_thresh2 = int(max_dense_1) * max_val/255 + dense_1 = np.where(((textured_cxr=scaled_thresh1)), textured_cxr, 0) + dense_2 = np.where(((textured_cxr=scaled_thresh2)), textured_cxr, 0) + return max_dense_1, dense_1, dense_2 + +def set_min_dense_3(max_dense_2): + global scaled_thresh3 + print("max_dense_2", max_dense_2) + scaled_thresh3 = int(max_dense_2) * max_val/255 + dense_2 = np.where(((textured_cxr=scaled_thresh2)), textured_cxr, 0) + dense_3 = np.where(((textured_cxr<255) & (textured_cxr>=scaled_thresh3)), textured_cxr, 0) + return max_dense_2, dense_2, dense_3 + +def new__cxr(max_dense_0, max_dense_1, max_dense_2): + global textured_cxr, lung_noised, max_val, cxr, mask, scaled_thresh1, scaled_thresh2, scaled_thresh3, image_id, index, count + index += 1 + if index > 3: + index = 1 + image_id += 1 + # write count, thresh1, thresh2, thresh3 to csv file + if count <= 30: + with open(f'density_{user}.csv', 'a', newline='') as csvfile: + writer = csv.DictWriter(csvfile, fieldnames=fieldnames) + writer.writerow({'count':count, 'thresh_1': max_dense_0, 'thresh_2': max_dense_1, 'thresh_3': max_dense_2}) + count += 1 + if(count > 30): + empty_image = np.zeros((256, 256), dtype=np.uint8) + label1.update(visible=False) + count = 1 + image_id = 1 + index = 1 + # create a csv file + with open(f'density_{user}.csv', 'a', newline='') as csvfile: + # create a csv dict writer object + writer = csv.DictWriter(csvfile, fieldnames=fieldnames) + csvfile.write('\n') + # write headers to the csv file + writer.writeheader() + return empty_image, empty_image, empty_image, empty_image, empty_image, empty_image, empty_image, 30 + cxr_file = "cxr" + str(image_id) + "_cxr.png" + mask_file = "cxr" + str(image_id) + "_mask.png" + textured_cxr_file = "cxr" + str(image_id) + "_textured_" + str(index) + ".png" + lung_noised_file = "cxr" + str(image_id) + "_lung_noised_" + str(index) + ".png" + cxr_path = os.path.join(cxr_dir, cxr_file) + mask_path = os.path.join(mask_dir, mask_file) + textured_cxr_path = os.path.join(textured_cxr_dir, textured_cxr_file) + lung_noised_path = os.path.join(lung_noised_dir, lung_noised_file) + cxr = cv.imread(cxr_path, cv.IMREAD_GRAYSCALE) + mask = cv.imread(mask_path, cv.IMREAD_GRAYSCALE) + textured_cxr = cv.imread(textured_cxr_path, cv.IMREAD_GRAYSCALE) + lung_noised = cv.imread(lung_noised_path, cv.IMREAD_GRAYSCALE) + max_val = np.percentile(cxr, 97) # To optimize later + thresh1 = 50 + thresh2 = 100 + thresh3 = 150 + scaled_thresh1 = thresh1 * max_val/255 + scaled_thresh2 = thresh2 * max_val/255 + scaled_thresh3 = thresh3 * max_val/255 + dense_0 = np.where(textured_cxr=scaled_thresh1)), textured_cxr, 0) + dense_2 = np.where(((textured_cxr=scaled_thresh2)), textured_cxr, 0) + dense_3 = np.where(((textured_cxr<255) & (textured_cxr>=scaled_thresh3)), textured_cxr, 0) + return cxr, textured_cxr, lung_noised, dense_0, dense_1, dense_2, dense_3, count + +def create_csv(): + # check if a csv file exits + global count, fieldnames, image_id, index + if not os.path.exists(f'density_{user}.csv'): + fieldnames = ['count', 'thresh_1', 'thresh_2', 'thresh_3'] + # create a csv file + with open(f'density_{user}.csv', 'w', newline='') as csvfile: + # create a csv dict writer object + writer = csv.DictWriter(csvfile, fieldnames=fieldnames) + # write headers to the csv file + writer.writeheader() + else: + fieldnames = ['count', 'thresh_1', 'thresh_2', 'thresh_3'] + # create a csv file + with open(f'density_{user}.csv', 'a', newline='') as csvfile: + # create a csv dict writer object + writer = csv.DictWriter(csvfile, fieldnames=fieldnames) + csvfile.write('\n') + # write headers to the csv file + writer.writeheader() + # image_id, index = divmod(count, 3) + # image_id += 1 + +def check_auth(username, password): + global user, fresh_start + user = username + if(user == 'gk' and password == 'upmc2009'): + create_csv() + return True + elif(user == 'veytel' and password == 'pittsburgh'): + create_csv() + return True + +def change_vis(): + global count + if count >= 30: + return gr.Label.update(visible=True), gr.Button.update(visible=False) + else: + return gr.Label.update(visible=False), gr.Button.update(visible=True) + +with gr.Blocks() as demo: + count = 1 + image_id = 1 + index = 1 + executable_path = os.path.dirname(os.path.realpath(__file__)) + cxr_dir = os.path.join(executable_path, "Images/cxr") + mask_dir = os.path.join(executable_path, "Images/mask") + textured_cxr_dir = os.path.join(executable_path, "Images/textured_cxr") + lung_noised_dir = os.path.join(executable_path, "Images/lung_noised") + cxr_file = "cxr" + str(image_id) + "_cxr.png" + mask_file = "cxr" + str(image_id) + "_mask.png" + textured_cxr_file = "cxr" + str(image_id) + "_textured_" + str(index) + ".png" + lung_noised_file = "cxr" + str(image_id) + "_lung_noised_" + str(index) + ".png" + cxr_path = os.path.join(cxr_dir, cxr_file) + mask_path = os.path.join(mask_dir, mask_file) + textured_cxr_path = os.path.join(textured_cxr_dir, textured_cxr_file) + lung_noised_path = os.path.join(lung_noised_dir, lung_noised_file) + # print("*"*50, cxr_path) + cxr = cv.imread(cxr_path, cv.IMREAD_GRAYSCALE) + mask = cv.imread(mask_path, cv.IMREAD_GRAYSCALE) + textured_cxr = cv.imread(textured_cxr_path, cv.IMREAD_GRAYSCALE) + lung_noised = cv.imread(lung_noised_path, cv.IMREAD_GRAYSCALE) + max_val = np.percentile(cxr, 97) # To optimize later + thresh1 = 50 + thresh2 = 100 + thresh3 = 150 + scaled_thresh1 = thresh1 * max_val/255 + scaled_thresh2 = thresh2 * max_val/255 + scaled_thresh3 = thresh3 * max_val/255 + dense_0 = np.where(textured_cxr=scaled_thresh1)), textured_cxr, 0) + dense_2 = np.where(((textured_cxr=scaled_thresh2)), textured_cxr, 0) + dense_3 = np.where(((textured_cxr<255) & (textured_cxr>=scaled_thresh3)), textured_cxr, 0) + # open csv in append mode + with gr.Row(): + with gr.Column(): + im1 = gr.Image(cxr, label="Original CXR") + with gr.Column(): + im2 = gr.Image(textured_cxr, label="Texture") + with gr.Column(): + im3 = gr.Image(lung_noised, label="Synthetic CXR") + with gr.Column(): + label1 = gr.Label("Completed! Please close window", visible=False) + progress_log = gr.Slider(1, 30, value=1, step = 1, label="progress") + button1 = gr.Button(value="Save & continue", visible=True) + + with gr.Row(): + with gr.Column(): + dense0 = gr.Image(dense_0, label="Dense 0") + with gr.Row(): + min_dense_0 = gr.Textbox(value='0', label="Min") + max_dense_0 = gr.Slider(0, 255, value=50, step = 1, label="Max") + + with gr.Column(): + dense1 = gr.Image(dense_1, label="Dense 1") + with gr.Row(): + min_dense_1 = gr.Textbox(value='50', label="Min") + max_dense_1 = gr.Slider(0, 255, value=100, step = 1, label="Max") + max_dense_0.change(set_min_dense_1, inputs=max_dense_0, outputs=[min_dense_1, dense0, dense1]) + + with gr.Column(): + dense2 = gr.Image(dense_2, label="Dense 2") + with gr.Row(): + min_dense_2 = gr.Textbox(value='100', label="Min") + max_dense_2 = gr.Slider(0, 255, value=150, step = 1, label="Max") + max_dense_1.change(set_min_dense_2, inputs=max_dense_1, outputs=[min_dense_2, dense1, dense2]) + + with gr.Column(): + dense3 = gr.Image(dense_3, label="Dense 3") + with gr.Row(): + min_dense_3 = gr.Textbox(value='150', label="Min") + max_dense_3 = gr.Textbox(value='255', label="Max") + max_dense_2.change(set_min_dense_3, inputs=max_dense_2, outputs=[min_dense_3, dense2, dense3]) + + button1.click(new__cxr, inputs = [max_dense_0, max_dense_1, max_dense_2], outputs = [im1, im2, im3, dense0, dense1, dense2, dense3, progress_log]) + button1.click(change_vis,outputs=[label1, button1]) + +if __name__ == "__main__": + demo.launch(auth=check_auth) + + + + diff --git a/synthetic_cxr_create.csv b/synthetic_cxr_create.csv new file mode 100644 index 0000000000000000000000000000000000000000..54c301c7799481fed8b8d3151978c425450d95ed --- /dev/null +++ b/synthetic_cxr_create.csv @@ -0,0 +1,33 @@ +cxr_file,count,dx,dy,scale,octaves,persistence,lacunarity,brightness +cxr1_cxr.jpeg,1,461,588,122,100,0.6715948654865922,2,116 +cxr1_cxr.jpeg,2,533,881,131,86,0.7175560261689419,2,206 +cxr1_cxr.jpeg,3,347,444,160,50,0.7432813063757434,2,87 +cxr2_cxr.jpeg,1,702,765,110,56,0.6590290489866982,2,51 +cxr2_cxr.jpeg,2,739,493,135,94,0.7410419656646736,2,96 +cxr2_cxr.jpeg,3,843,327,104,87,0.6924906759627785,2,160 +cxr3_cxr.jpeg,1,827,180,114,78,0.7316247045202553,2,174 +cxr3_cxr.jpeg,2,597,391,138,77,0.667695685860901,2,196 +cxr3_cxr.jpeg,3,129,98,147,80,0.7333906432604745,2,58 +cxr4_cxr.jpeg,1,331,790,178,87,0.7865296660040021,2,120 +cxr4_cxr.jpeg,2,633,883,200,95,0.7921093301882886,2,77 +cxr4_cxr.jpeg,3,920,744,194,90,0.7327225340276207,2,146 +cxr5_cxr.jpeg,1,314,928,143,53,0.7324297564947887,2,157 +cxr5_cxr.jpeg,2,436,400,190,92,0.6722188965226634,2,187 +cxr5_cxr.jpeg,3,547,361,140,68,0.6572499021118244,2,70 +cxr6_cxr.jpeg,1,180,840,137,95,0.6164122745265627,2,161 +cxr6_cxr.jpeg,2,122,994,185,80,0.734682791129728,2,188 +cxr6_cxr.jpeg,3,496,610,196,95,0.6169201129454331,2,47 +cxr7_cxr.jpeg,1,567,289,101,54,0.7599762232333761,2,165 +cxr7_cxr.jpeg,2,863,681,128,56,0.6066286182198993,2,109 +cxr7_cxr.jpeg,3,963,833,121,88,0.723477547445933,2,72 +cxr8_cxr.jpeg,1,344,337,178,100,0.6013820812339177,2,197 +cxr8_cxr.jpeg,2,647,289,193,62,0.7607433093045762,2,182 +cxr8_cxr.jpeg,3,681,350,104,55,0.7534281318005422,2,218 +cxr9_cxr.jpeg,1,351,649,131,96,0.6052302331015198,2,39 +cxr9_cxr.jpeg,2,89,676,101,59,0.7112695803153288,2,111 +cxr9_cxr.jpeg,3,682,35,178,78,0.8128171228429985,2,78 +cxr10_cxr.jpeg,1,250,826,106,54,0.7741361912215817,2,211 +cxr10_cxr.jpeg,2,194,952,140,74,0.7005568859744469,2,81 +cxr10_cxr.jpeg,3,521,621,126,92,0.7850608422715739,2,219 + +