Fri, 06 Dec 2019 23:12:39 +0200
Don't depend on Plots. It's slow. Use GR directly.
Manifest.toml | file | annotate | diff | comparison | revisions | |
Project.toml | file | annotate | diff | comparison | revisions | |
src/Visualise.jl | file | annotate | diff | comparison | revisions |
--- a/Manifest.toml Fri Dec 06 21:19:21 2019 +0200 +++ b/Manifest.toml Fri Dec 06 23:12:39 2019 +0200 @@ -9,40 +9,17 @@ [[Base64]] uuid = "2a0f44e3-6c83-55bd-87e4-b1978d98bd5f" -[[BinaryProvider]] -deps = ["Libdl", "SHA"] -git-tree-sha1 = "5b08ed6036d9d3f0ee6369410b830f8873d4024c" -uuid = "b99e7846-7c00-51b0-8f62-c81ae34c0232" -version = "0.5.8" - [[ColorTypes]] deps = ["FixedPointNumbers", "Random"] git-tree-sha1 = "10050a24b09e8e41b951e9976b109871ce98d965" uuid = "3da002f7-5984-5a60-b8a6-cbb66c0b333f" version = "0.8.0" -[[Colors]] -deps = ["ColorTypes", "FixedPointNumbers", "InteractiveUtils", "Printf", "Reexport"] -git-tree-sha1 = "c9c1845d6bf22e34738bee65c357a69f416ed5d1" -uuid = "5ae59095-9a9b-59fe-a467-6f913c188581" -version = "0.9.6" - [[ConstructionBase]] git-tree-sha1 = "a2a6a5fea4d6f730ec4c18a76d27ec10e8ec1c50" uuid = "187b0558-2788-49d3-abe0-74a17ed4e7c9" version = "1.0.0" -[[Contour]] -deps = ["LinearAlgebra", "StaticArrays", "Test"] -git-tree-sha1 = "b974e164358fea753ef853ce7bad97afec15bb80" -uuid = "d38c429a-6771-53c6-b99e-75d170b6e991" -version = "0.5.1" - -[[DataAPI]] -git-tree-sha1 = "674b67f344687a88310213ddfa8a2b3c76cc4252" -uuid = "9a962f9c-6df0-11e9-0e5d-c546b8b5ee8a" -version = "1.1.0" - [[DataStructures]] deps = ["InteractiveUtils", "OrderedCollections"] git-tree-sha1 = "a1b652fb77ae8ca7ea328fa7ba5aa151036e5c10" @@ -61,12 +38,6 @@ deps = ["Random", "Serialization", "Sockets"] uuid = "8ba89e20-285c-5b6f-9357-94700520ee1b" -[[FFMPEG]] -deps = ["BinaryProvider", "Libdl"] -git-tree-sha1 = "9143266ba77d3313a4cf61d8333a1970e8c5d8b6" -uuid = "c87230d0-a227-11e9-1b43-d7ebe4e7570a" -version = "0.2.4" - [[FileIO]] deps = ["Pkg"] git-tree-sha1 = "6c976460b85527d22d979682222d36767d95e27f" @@ -84,27 +55,10 @@ uuid = "28b8d3ca-fb5f-59d9-8090-bfdbd6d07a71" version = "0.44.0" -[[GeometryTypes]] -deps = ["ColorTypes", "FixedPointNumbers", "IterTools", "LinearAlgebra", "StaticArrays"] -git-tree-sha1 = "4bf5706f3b9a2c5adbbc473c8c91582c1fa816a3" -uuid = "4d00f742-c7ba-57c2-abde-4428a4b178cb" -version = "0.7.6" - [[InteractiveUtils]] deps = ["Markdown"] uuid = "b77e0a4c-d291-57a0-90e8-8db25a27a240" -[[IterTools]] -git-tree-sha1 = "05110a2ab1fc5f932622ffea2a003221f4782c18" -uuid = "c8e1da08-722c-5040-9ed9-7db0dc04731e" -version = "1.3.0" - -[[JSON]] -deps = ["Dates", "Mmap", "Parsers", "Unicode"] -git-tree-sha1 = "b34d7cef7b337321e97d22242c3c2b91f476748e" -uuid = "682c06a0-de6a-54ab-a142-c8b1cf79cde6" -version = "0.21.0" - [[LibGit2]] uuid = "76f85450-5226-5b5a-8eaa-529ad045b433" @@ -128,60 +82,19 @@ deps = ["Base64"] uuid = "d6f4376e-aef5-505a-96c1-9c027394607a" -[[Measures]] -deps = ["Test"] -git-tree-sha1 = "ddfd6d13e330beacdde2c80de27c1c671945e7d9" -uuid = "442fdcdd-2543-5da2-b0f3-8c86c306513e" -version = "0.3.0" - -[[Missings]] -deps = ["DataAPI"] -git-tree-sha1 = "de0a5ce9e5289f27df672ffabef4d1e5861247d5" -uuid = "e1d29d7a-bbdc-5cf2-9ac0-f12de2c33e28" -version = "0.4.3" - [[Mmap]] uuid = "a63ad114-7e13-5084-954f-fe012c677804" -[[NaNMath]] -git-tree-sha1 = "928b8ca9b2791081dc71a51c55347c27c618760f" -uuid = "77ba4419-2d1f-58cd-9bb1-8ffee604a2e3" -version = "0.3.3" - [[OrderedCollections]] deps = ["Random", "Serialization", "Test"] git-tree-sha1 = "c4c13474d23c60d20a67b217f1d7f22a40edf8f1" uuid = "bac558e1-5e72-5ebc-8fee-abe8a469f55d" version = "1.1.0" -[[Parsers]] -deps = ["Dates", "Test"] -git-tree-sha1 = "0139ba59ce9bc680e2925aec5b7db79065d60556" -uuid = "69de0a69-1ddd-5017-9359-2bf0b02dc9f0" -version = "0.3.10" - [[Pkg]] deps = ["Dates", "LibGit2", "Libdl", "Logging", "Markdown", "Printf", "REPL", "Random", "SHA", "UUIDs"] uuid = "44cfe95a-1eb2-52ea-b672-e2afdf69b78f" -[[PlotThemes]] -deps = ["PlotUtils", "Requires", "Statistics"] -git-tree-sha1 = "5bf458e66ca6d617e299a55dfb5328bb26dbf731" -uuid = "ccf2f8ad-2431-5c83-bf29-c5338b663b6a" -version = "1.0.0" - -[[PlotUtils]] -deps = ["Colors", "Dates", "Printf", "Random", "Reexport"] -git-tree-sha1 = "7622cbde3200a9876a14ba85d66f25d7f4e7a6ca" -uuid = "995b91a9-d308-5afd-9ec6-746e21dbc043" -version = "0.6.1" - -[[Plots]] -deps = ["Base64", "Contour", "Dates", "FFMPEG", "FixedPointNumbers", "GR", "GeometryTypes", "JSON", "LinearAlgebra", "Measures", "NaNMath", "Pkg", "PlotThemes", "PlotUtils", "Printf", "REPL", "Random", "RecipesBase", "Reexport", "Requires", "Showoff", "SparseArrays", "Statistics", "StatsBase", "UUIDs"] -git-tree-sha1 = "70e9bac47b12356d3bb69e9d2d1ab190020421dc" -uuid = "91a5bcdd-55d7-5caf-9e0b-520d859cae80" -version = "0.28.2" - [[Printf]] deps = ["Unicode"] uuid = "de0858da-6303-5e67-8744-51eddeeeb8d7" @@ -194,23 +107,6 @@ deps = ["Serialization"] uuid = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c" -[[RecipesBase]] -git-tree-sha1 = "7bdce29bc9b2f5660a6e5e64d64d91ec941f6aa2" -uuid = "3cdcf5f2-1ef4-517c-9805-6587b60abb01" -version = "0.7.0" - -[[Reexport]] -deps = ["Pkg"] -git-tree-sha1 = "7b1d07f411bc8ddb7977ec7f377b97b158514fe0" -uuid = "189a3867-3050-52da-a836-e630ba90ab69" -version = "0.2.0" - -[[Requires]] -deps = ["Test"] -git-tree-sha1 = "f6fbf4ba64d295e146e49e021207993b6b48c7d1" -uuid = "ae029012-a4dd-5104-9daa-d747884805df" -version = "0.5.2" - [[SHA]] uuid = "ea8e919c-243c-51af-8825-aaa63cd721ce" @@ -223,41 +119,9 @@ uuid = "efcf1570-3423-57d1-acb7-fd33fddbac46" version = "0.5.2" -[[Showoff]] -deps = ["Dates"] -git-tree-sha1 = "e032c9df551fb23c9f98ae1064de074111b7bc39" -uuid = "992d4aef-0814-514b-bc4d-f2e9a6c4116f" -version = "0.3.1" - [[Sockets]] uuid = "6462fe0b-24de-5631-8697-dd941f90decc" -[[SortingAlgorithms]] -deps = ["DataStructures", "Random", "Test"] -git-tree-sha1 = "03f5898c9959f8115e30bc7226ada7d0df554ddd" -uuid = "a2af1166-a08f-5f64-846c-94a0d3cef48c" -version = "0.3.1" - -[[SparseArrays]] -deps = ["LinearAlgebra", "Random"] -uuid = "2f01184e-e22b-5df5-ae63-d93ebab69eaf" - -[[StaticArrays]] -deps = ["LinearAlgebra", "Random", "Statistics"] -git-tree-sha1 = "5a3bcb6233adabde68ebc97be66e95dcb787424c" -uuid = "90137ffa-7385-5640-81b9-e52037218182" -version = "0.12.1" - -[[Statistics]] -deps = ["LinearAlgebra", "SparseArrays"] -uuid = "10745b16-79ce-11e8-11f9-7d13ad32a3b2" - -[[StatsBase]] -deps = ["DataAPI", "DataStructures", "LinearAlgebra", "Missings", "Printf", "Random", "SortingAlgorithms", "SparseArrays", "Statistics"] -git-tree-sha1 = "c53e809e63fe5cf5de13632090bc3520649c9950" -uuid = "2913bbd2-ae8a-5f71-8c99-4fb6c76f3a91" -version = "0.32.0" - [[Test]] deps = ["Distributed", "InteractiveUtils", "Logging", "Random"] uuid = "8dfed614-e22c-5e08-85e1-65c5234f0b40"
--- a/Project.toml Fri Dec 06 21:19:21 2019 +0200 +++ b/Project.toml Fri Dec 06 23:12:39 2019 +0200 @@ -7,7 +7,6 @@ AlgTools = "c46e2e78-5339-41fd-a966-983ff60ab8e7" ColorTypes = "3da002f7-5984-5a60-b8a6-cbb66c0b333f" FileIO = "5789e2e9-d7fb-5bc7-8068-2c6fae9b9549" -Measures = "442fdcdd-2543-5da2-b0f3-8c86c306513e" -Plots = "91a5bcdd-55d7-5caf-9e0b-520d859cae80" +GR = "28b8d3ca-fb5f-59d9-8090-bfdbd6d07a71" Printf = "de0858da-6303-5e67-8744-51eddeeeb8d7" Setfield = "efcf1570-3423-57d1-acb7-fd33fddbac46"
--- a/src/Visualise.jl Fri Dec 06 21:19:21 2019 +0200 +++ b/src/Visualise.jl Fri Dec 06 23:12:39 2019 +0200 @@ -8,8 +8,9 @@ using FileIO using Setfield using ColorTypes: Gray -using Plots -using Measures +#using Plots +#using Measures +import GR using AlgTools.Util using AlgTools.StructTools @@ -78,9 +79,44 @@ return end +# function do_visualise(imgs) +# plt = im -> plot(grayimg(im), showaxis=false, grid=false, aspect_ratio=:equal, margin=2mm) +# display(plot([plt(imgs[i]) for i =1:length(imgs)]..., reuse=true, margin=0mm)) +# end + +grayGR = x -> begin + y = round(UInt32, 0xff*clip(x)) + return 0x010101*y + 0xff000000 +end + function do_visualise(imgs) - plt = im -> plot(grayimg(im), showaxis=false, grid=false, aspect_ratio=:equal, margin=2mm) - display(plot([plt(imgs[i]) for i =1:length(imgs)]..., reuse=true, margin=0mm)) + n = length(imgs) + # Get device dimensions in metres and pixels + scrw, scrh, pw, ph = GR.inqdspsize() + # Scaling to maximums ize window + sc=0.7 + # Set up window and transformations + GR.clearws() + GR.setscale(0); + GR.selntran(1) + # - First OS window size + if scrw/n>scrh + GR.setwsviewport(0, sc*scrh*n, 0, sc*scrh) + else + GR.setwsviewport(0, sc*scrw, 0, sc*scrw/n) + end + # - Part of normalised window shown + GR.setwswindow(0, 1, 0, 1/n); + GR.setviewport(0, 1, 0, 1/n); + # Workd coordinates + GR.setwindow(0, n, 0, 1) + # Plot images + for i=1:n + im = imgs[i]' + sz = size(im) + GR.drawimage(i-1, i, 0, 1, sz[1], sz[2], grayGR.(im)) + end + GR.updatews() end function visualise(channel_or_toggle, imgs)