204 Commits

Author SHA1 Message Date
a8725e5e88 Move denoising testing images to work even if provide minColor and maxColor (#63) 2024-04-30 05:36:28 +02:00
3c403dbed3 WIP (#63) 2024-04-30 05:31:14 +02:00
b6425b426e #63: WIP 2024-04-30 05:01:05 +02:00
319ca8fb60 Add attribute_source_camera.py
It is a modified copy of `split_and_compare_prnus_of_subgroups.py`.
2024-04-30 04:48:02 +02:00
aa9f73e8a0 Fix random seed to improve reproducibility 2024-04-30 03:49:45 +02:00
22fc4ce46b Remove rescale for plt.imsave as do not seem necessary anymore 2024-04-30 03:36:37 +02:00
20fcb247c6 Simplify loops
The idea was initially in the context of #62 to optimize execution
speed.
2024-04-30 03:36:04 +02:00
ad5aa22ae6 Add missing import for saveNpArray and add a missing f-string 2024-04-30 03:35:30 +02:00
c2a2dea2c7 Add a missing argument to getColorChannel in extract_noise.py 2024-04-30 03:22:03 +02:00
31b979edb3 Override print to also print current time 2024-04-30 03:21:32 +02:00
c9f75286bf Make merge_single_color_channel_images_according_to_bayer_filter.py
virtual environment friendly
2024-04-30 03:20:44 +02:00
ab9466c738 #62: Optimize significantly mergeSingleColorChannelImagesAccordingToBayerFilter 2024-04-30 03:17:19 +02:00
2d67c2bca1 Add and use rescaleRawImageForDenoiser and updateExtremes (#59) 2024-04-30 02:04:17 +02:00
671a692114 #59: Save rmss for futher investigations
For instance to plot a fair comparison, see [issues/59#issuecomment-1732](#59 (comment)).
2024-04-30 01:04:33 +02:00
5647ab4019 #59: Should make split_and_compare_prnus_of_subgroups.py compatible with RAW images 2024-04-27 23:13:48 +02:00
9b2f2281e4 Make merge_single_color_channel_images_according_to_bayer_filter.py more general 2024-04-27 22:57:29 +02:00
5ea0a862c0 Add and use getColorChannel 2024-04-27 21:49:32 +02:00
561ec9d1e0 Add and use escapeFilePath 2024-04-27 21:48:07 +02:00
b50f013234 Add and use isARawImage 2024-04-27 21:46:40 +02:00
a0fc38d023 Add and use getRawColorChannel to utils.py 2024-04-27 20:47:33 +02:00
80a33428d6 Make split_and_compare_prnus_of_subgroups.py execution compatible with chaining shell commands
Otherwise it is stuck on `plt.show` until it is closed but we want to
chain with a notification command, so the notification is not
interesting in this case.
2024-04-27 19:36:45 +02:00
9d8e5ddbec Make split_and_compare_prnus_of_subgroups.py only use 2 images of RAM
quantity
2024-04-27 19:24:12 +02:00
4ac75448a6 Correct in theory the range of color values 2024-04-27 17:54:16 +02:00
643fee9f4a Make split_and_compare_prnus_of_subgroups.py executable from terminal
Used to be only executable from Pyzo.
2024-04-27 16:55:03 +02:00
c8fe71444f #59: Leverage iterativeMean to not suffer of RAM quantity issue 2024-04-27 16:49:06 +02:00
6f6721da8d Make merge_single_color_channel_images_according_to_bayer_filter.py executable from terminal
Used to only run in Pyzo.
2024-04-27 16:20:02 +02:00
b0fa01c6c4 Remove potential chronological bias 2024-04-27 16:10:20 +02:00
e9dc28dc2a Simplify and clean split_and_compare_prnus_of_subgroups.py 2024-04-27 16:06:47 +02:00
ee7353cfde Correct iterativeMean implementation for images
Otherwise get:

```
Traceback (most recent call last):
  File "/home/benjamin/robust_image_source_identification_on_modern_smartphones/datasets/raise/./extract_noise.py", line 148, in <module>
    treatImage(imageFileName, color = color)
  File "/home/benjamin/robust_image_source_identification_on_modern_smartphones/datasets/raise/./extract_noise.py", line 114, in treatImage
    estimatedPrnuIterativeMean.add(imageNoiseNpArray)
  File "/home/benjamin/robust_image_source_identification_on_modern_smartphones/datasets/raise/utils.py", line 34, in add
    self.mean = ((self.mean * self.numberOfElementsInMean) + element) / (self.numberOfElementsInMean + 1)
                  ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TypeError: unsupported operand type(s) for *: 'NoneType' and 'int'
```
2024-04-27 15:58:29 +02:00
bd0b9aca94 Correct support for JPG images 2024-04-27 15:55:25 +02:00
e9038bdb76 Hide inappropriate figure title 2024-04-27 15:21:57 +02:00
af947dbf65 Add articles/Euclidean distance - Wikipedia/ 2024-04-27 15:08:56 +02:00
5baabae99d Make mean initialization more general in iterativeMean 2024-04-26 15:56:10 +02:00
1ea1bde910 Leverage iterativeMean in extract_noise.py 2024-04-26 14:25:08 +02:00
674f87d480 Remove unnecessary iterativeMean parentheses and rename addElement to add 2024-04-26 14:22:59 +02:00
7af96d6bf6 Add iterativeMean to utils
Verified with:

```py
myIterativeMean = iterativeMean()
print(myIterativeMean.mean)
myIterativeMean.addElement(2)
print(myIterativeMean.mean)
myIterativeMean.addElement(3)
print(myIterativeMean.mean)
```

Note that cannot simplify as follows in the general case of using images as
`element`s for instance:

```diff
diff --git a/datasets/raise/utils.py b/datasets/raise/utils.py
index fba5523..a116edb 100644
--- a/datasets/raise/utils.py
+++ b/datasets/raise/utils.py
@@ -27,12 +27,9 @@ def denoise(imageNpArray, denoiserName):
     return imageDenoisedNpArray

 class iterativeMean():
-    mean = None
+    mean = 0
     numberOfElementsInMean = 0

     def addElement(self, element):
-        if self.mean is None:
-            self.mean = element
-        else:
-            self.mean = ((self.mean * self.numberOfElementsInMean) + element) / (self.numberOfElementsInMean + 1)
+        self.mean = ((self.mean * self.numberOfElementsInMean) + element) / (self.numberOfElementsInMean + 1)
         self.numberOfElementsInMean += 1
\ No newline at end of file
```
2024-04-26 14:16:35 +02:00
7684e1408d Remove unused imports in split_and_compare_prnus_of_subgroups.py 2024-04-26 13:58:19 +02:00
9c469cf67a Leverage utils.py denoise in split_and_compare_prnus_of_subgroups.py 2024-04-26 13:58:00 +02:00
9d2903af60 Move denoise from extract_noise.py to utils.py
See next commit leveraging it in `split_and_compare_prnus_of_subgroups.py`
2024-04-26 13:57:18 +02:00
6a93b04686 Remove already used previous temporary analysis commit code 2024-04-26 13:49:31 +02:00
b52fff9deb Add commented code to enforce merging Numpy arrays with a greyscale
colormap.
2024-04-26 13:48:44 +02:00
3ffcd33efe Add Gaussian filter to blur images when using mean as denoiser
See
https://docs.scipy.org/doc/scipy-1.13.0/reference/generated/scipy.ndimage.gaussian_filter.html#ba1e4df0-d4be-47c2-81e5-059286837a2b.
2024-04-26 04:39:06 +02:00
9641641b61 Remove commented code from analyze_bayer_filter_mean_denoiser.py 2024-04-26 04:13:08 +02:00
3e8b607b97 Add analyze_bayer_filter_mean_denoiser.py 2024-04-26 04:12:13 +02:00
f1cafc1eb1 Improve yticks of boxplot in flat-field_pointer.py 2024-04-26 04:10:41 +02:00
25b3b30634 Remove a commented print in plot_dates.py 2024-04-26 04:10:02 +02:00
3ada720db9 Add execution results, plot of locations and distance analysis 2024-04-26 03:05:17 +02:00
56037b058b Add Zoom to rectangle by default 2024-04-26 01:49:57 +02:00
f5c235c3cd Add support to TIF for RAISE flat-field 2024-04-26 01:49:13 +02:00
ab72da470e Ready for pointing 2024-04-26 01:34:55 +02:00
981e2a48ae Add flat-field_pointer.py
https://matplotlib.org/3.8.4/gallery/event_handling/coords_demo.html
2024-04-26 01:21:20 +02:00
1e8d9d844c Make plot_dates.py leverage photo exifs 2024-04-26 00:52:52 +02:00
7cfe566290 Add plot_dates.py as it is as a Matplotlib example
https://matplotlib.org/3.8.0/gallery/lines_bars_and_markers/timeline.html
2024-04-26 00:51:12 +02:00
719bb487dd Restore other than raw images support 2024-04-25 18:12:36 +02:00
f88b6ec1a9 Save mean of each color channel to merge them into a single image being
the mean of images

Otherwise for each color channel could use:

```py
plt.imsave(f'{fileName}.png', colorMean)
```
2024-04-25 16:00:23 +02:00
4907d0c0fb Add and use saveNpArray 2024-04-25 15:59:26 +02:00
65708e4977 Correctly implement mean denoiser
Used to have:

```py
imageDenoisedNpArray = imageNpArray - means[color]
imageNoiseNpArray = imageNpArray - imageDenoisedNpArray
```

so:

```py
imageNoiseNpArray = means[color]
```

then we mean the mean...

While should have:

```py
imageDenoisedNpArray = means[color]
```
2024-04-25 15:58:24 +02:00
60a4f78fa6 Ease providing {min,max}Color 2024-04-25 15:30:23 +02:00
c642fa430e Add commented code to crop image
It is commented as it does not seem to be finally what we are looking
for.
2024-04-25 14:37:08 +02:00
674ce8dabe Use relative path for os.chdir in generate_histogram.py 2024-04-25 14:36:38 +02:00
807f586841 Remove no more relevant print in show_mean_noise.py 2024-04-25 14:28:36 +02:00
5c1f346f2e Clean single image histogram
Source: https://www.codespeedy.com/plot-a-histogram-for-an-image-in-pil-python/
2024-04-25 14:16:58 +02:00
e2602347d4 Use a single figure to generate histogram 2024-04-25 12:39:24 +02:00
ec3ddd9c94 Add generate_histogram.py 2024-04-25 12:37:21 +02:00
a78dcd6f99 Clean extract_noise.py 2024-04-24 14:10:22 +02:00
c65b3642d8 Precise multiple_colors.png file name 2024-04-23 05:01:22 +02:00
be9d4f8f4b Add denoiser mean possibility 2024-04-23 04:39:28 +02:00
a15b356e16 Add and use getImageNpArray 2024-04-23 04:38:40 +02:00
809aa7fb43 Correct Rafael images filtering 2024-04-23 04:37:46 +02:00
e3bbb2c63d Precise possibilities for denoiser 2024-04-23 03:57:43 +02:00
fc0cc8808a Add the missing import numpy as np in merge_single_color_channel_images_according_to_bayer_filter.py 2024-04-23 03:51:56 +02:00
9f2334ceea Precise imagesFolderPathFileName depending on sky or wall 2024-04-21 19:54:04 +02:00
e2406071d4 Simplify specifying colors 2024-04-21 19:53:21 +02:00
29f3acc479 Enable computing specific colors
For instance if have tested on one and do not want to waste its
computation.
2024-04-21 19:52:52 +02:00
9365b58d1d #49: Remove intermediary bias by not working on images but numpy arrays instead 2024-04-19 17:21:54 +02:00
675b01271a #49: Remove shift per color channel 2024-04-19 17:19:47 +02:00
77330e24d2 Make datasets/raise/merge_single_color_channel_images_according_to_bayer_filter.py production ready 2024-04-18 01:21:31 +02:00
0b52e781e3 First try to merge multiple single color channel images 2024-04-18 01:00:41 +02:00
6aca1126a1 Complete dict assignment 2024-04-18 00:53:15 +02:00
3636335b63 Add match statement 2024-04-18 00:52:08 +02:00
be91a07dd5 Add and use getImageFileNameByColor 2024-04-18 00:43:14 +02:00
fddb89c64a Add datasets/raise/merge_single_color_channel_images_according_to_bayer_filter.py 2024-04-18 00:41:43 +02:00
faaf3eb263 Ease support for single or multiple colors 2024-04-18 00:35:34 +02:00
cca81927dd Move Color Enum to utils.py 2024-04-18 00:19:01 +02:00
eac2cf2174 Add a missing parameter 2024-04-18 00:18:20 +02:00
fb58d78fed Name output file the same way as the input one 2024-04-18 00:13:21 +02:00
8c9dfc2e41 Output an estimated PRNU per color channel 2024-04-17 20:25:14 +02:00
f15af68bba Add and use Color enumeration 2024-04-17 20:15:33 +02:00
f4d8c028b2 Remove unnecessary spaces
Thanks to:

```bash
sed -i 's/^ *$//g' extract_noise.py
```
2024-04-17 14:32:55 +02:00
3760164622 Add and use colorRawImageVisible 2024-04-17 14:27:03 +02:00
83a12f4e0a Add and use SKY and WALL 2024-04-17 14:26:13 +02:00
e080e841f5 Add and use raiseNotFlatFields 2024-04-17 14:10:11 +02:00
a6ef3977dd Add comment concerning printing {min,max}Color 2024-04-16 16:48:29 +02:00
8ca1972ddb Correct raise not flat-fields processing 2024-04-16 16:48:00 +02:00
817c016815 Give a try to get image size with rawpy but it seems far slower
As got:

```
Filtering images:   0%|▏                                                                               | 21/8156 [00:11<1:17:28,  1.75it/s]
```
2024-04-16 04:06:49 +02:00
04e0de4d33 Try making not flat-images compatible 2024-04-16 03:59:26 +02:00
3a4f774e28 Make denoise arguments depend on denoiser 2024-04-16 03:27:26 +02:00
caf7025504 Correct typos in previous commit 2024-04-16 03:15:53 +02:00
d4e13ed123 Compute automatically extreme values 2024-04-16 03:11:38 +02:00
a8fa053687 #49: Get PRNU by using RAW images 2024-04-16 03:02:58 +02:00
6251c487e2 Add temporarily maxGreen computation
And got:

```
Denoising images:   0%|                                                                      | 0/100 [00:00<?, ?it/s]maxGreen=2275
Denoising images:   1%|▌                                                             | 1/100 [00:00<01:11,  1.38it/s]maxGreen=2377
Denoising images:   2%|█▏                                                            | 2/100 [00:01<01:18,  1.24it/s]maxGreen=3468
Denoising images:  19%|███████████▌                                                 | 19/100 [00:11<00:46,  1.75it/s]maxGreen=4908
Denoising images: 100%|████████████████████████████████████████████████████████████| 100/100 [00:57<00:00,  1.74it/s]
```
2024-04-16 02:51:27 +02:00
90df8a7cb9 Verify raw.raw_pattern as raw.color_desc does not seem enough
As got:

```bash
python3 extract_noise.py
```
```
Denoising images:   0%|                                                                                           | 0/8156 [00:00<?, ?it/s]/mnt/HDD0/raise/nef/ra2c888f8t.NEF
Denoising images:   0%|                                                                                           | 0/8156 [00:00<?, ?it/s]
Traceback (most recent call last):
  File "/home/benjamin/robust_image_source_identification_on_modern_smartphones/datasets/raise/extract_noise.py", line 73, in <module>
    treatImage(imageFileName)
  File "/home/benjamin/robust_image_source_identification_on_modern_smartphones/datasets/raise/extract_noise.py", line 46, in treatImage
    assert np.array_equal(raw.raw_pattern, np.array([[3, 2], [0, 1]], dtype = np.uint8))
AssertionError
```
2024-04-16 01:06:59 +02:00
120eaf563f WIP: Add .nef support 2024-04-15 23:39:47 +02:00
a0b366e98a Use shebang compatible with venv
See [Benjamin-Loison/cpython/issues/10](https://github.com/Benjamin-Loison/cpython/issues/10).
2024-04-15 23:17:04 +02:00
bddfa4c8d5 Clean datasets/raise/extract_noise.py 2024-04-15 16:16:29 +02:00
a09f2ba1c0 #29: Add Nikon D7000 4946x3278 PRNU estimation from NEF to PNG images 2024-04-15 16:06:05 +02:00
847d4bb42f Update annotations 2024-04-11 23:52:38 +02:00
78b54bf169 Add articles/Mathématiques appliquées — Wikipédia/ 2024-04-11 23:47:20 +02:00
322e201048 Update annotations 2024-04-09 04:06:49 +02:00
fed5698e84 Update annotations 2024-04-09 03:43:17 +02:00
283fa781e5 Add articles/Bayer filter - Wikipedia/ 2024-04-09 03:16:11 +02:00
bc06612501 Make extract_noise.py easier to configure by providing denoiser 2024-04-08 04:52:29 +02:00
38d29e3c8f Add articles/Binomial distribution - Wikipedia/ 2024-04-07 22:59:09 +02:00
502ac5d14e Update annotations 2024-04-07 22:58:50 +02:00
6f3623fb44 Add articles/Luminance — Wikipédia/ 2024-04-07 22:33:57 +02:00
1c264ff405 Update annotations 2024-04-07 22:31:28 +02:00
9ed68af7e1 Add articles/Luminance - Wikipedia/ 2024-04-07 22:22:23 +02:00
9468bda3df Update annotations 2024-04-07 19:58:31 +02:00
3f47afb165 Add articles/Résumé de cours Variables aléatoires finies/ 2024-04-07 18:11:39 +02:00
68797b1470 Update annotations 2024-04-07 17:33:52 +02:00
dfe5b6ac38 Add articles/Random variable - Wikipedia/ 2024-04-07 17:24:05 +02:00
8651242c2b Update annotations 2024-04-07 17:21:29 +02:00
08d9cdc900 Add articles/Bernoulli distribution - Wikipedia/ 2024-04-07 17:17:36 +02:00
75f674cd95 Update annotations 2024-04-07 17:11:41 +02:00
ca1fa73c49 Add articles/Inflection point - Wikipedia/ 2024-04-07 17:09:30 +02:00
3d366eb426 Update annotations 2024-04-07 16:59:19 +02:00
70e5ef902d Add articles/Central limit theorem - Wikipedia/ 2024-04-07 16:52:25 +02:00
7301e2fe35 Update annotations 2024-04-07 16:50:40 +02:00
93663e1044 Add articles/Additive white Gaussian noise - Wikipedia/ 2024-04-07 16:42:10 +02:00
2d3830848b Update annotations 2024-04-07 16:40:49 +02:00
9d1527c5c4 Add articles/Gaussian noise - Wikipedia/ 2024-04-07 16:30:58 +02:00
8748e648b5 Remove no more relevant commented code for a test 2024-04-06 00:06:13 +02:00
15c41c0463 Add and use imageDenoisedNpArray to ease using other denoisers 2024-04-06 00:03:50 +02:00
b18080e9f5 #33: Switch to mono-thread 2024-04-06 00:00:24 +02:00
a83e8bb1e0 Replace tabs with spaces in datasets/raise/extract_noise.py 2024-04-05 23:57:37 +02:00
ba452096d5 #24: WebArchive articles/Positional Learning Quentin Bammey
As there is no WebArchive error anymore.
2024-04-05 19:01:31 +02:00
d271b502fa Add articles/Pixel binning - Wikipedia/ 2024-04-05 14:12:21 +02:00
658aa34600 Add articles/Self-supervised learning - Wikipedia 2024-04-05 11:37:33 +02:00
4d267bf540 Add articles/Positional Learning Quentin Bammey/ 2024-04-05 11:32:20 +02:00
606821d45e Add show_mean_noise.py 2024-04-03 22:18:18 +02:00
b354f59ac5 Make parallel production ready 2024-04-03 19:15:21 +02:00
0f394faa61 Multicores prototype 2024-04-03 18:20:31 +02:00
faed1e33e8 #33: Add datasets/raise/extract_noise.py 2024-04-03 18:20:08 +02:00
4dd52aae90 Use plt.imsave instead of toPilImage 2024-04-03 16:57:49 +02:00
d3af12ce3e Try to have clear figure for thesis audition 2024-04-03 15:20:24 +02:00
aafb7ebc92 Plot an exhaustive curve to make sure that results are not just by chance 2024-04-02 23:58:41 +02:00
631ed6de34 #31: Establish expected wanted results about finding an identical PRNU for both subgroups 2024-04-02 21:05:15 +02:00
f09665f856 Make first rendering with both subgroups 2024-04-02 19:58:59 +02:00
ea00f42c58 Add datasets/raise/split_and_compare_prnus_of_subgroups.py 2024-04-02 18:45:40 +02:00
90a806a7e2 Move webpage articles to datasets/raise/website/ 2024-04-02 18:31:27 +02:00
c69221a336 Update annotations 2024-04-02 11:54:54 +02:00
4df8a4f16e Add articles/RAISE - Dataset Download/ 2024-04-02 11:51:54 +02:00
dfb384a8be Update annotations 2024-04-02 11:49:39 +02:00
491e7c906b Update annotations 2024-04-02 11:47:51 +02:00
1c7fc33e06 Add articles/Darktable - Wikipedia/ 2024-04-02 11:47:45 +02:00
57298e2e2e Update annotations 2024-04-02 11:43:57 +02:00
adc224334e Add articles/XnView - Wikipedia/ 2024-04-02 11:43:13 +02:00
34d922901f Add articles/IrfanView - Wikipedia/ 2024-04-02 11:42:29 +02:00
bd18868bc7 Add articles/Nikon Electronic File — Wikipédia/ 2024-04-02 11:34:38 +02:00
fe7d2f0cb0 Add articles/Raster graphics - Wikipedia/ 2024-04-02 11:33:39 +02:00
3351c909af Update annotations 2024-04-02 11:32:35 +02:00
2f33ecf02a Add articles/TIFF - Wikipedia/ 2024-04-02 11:30:42 +02:00
f5e99fe4d3 Update annotations 2024-04-02 11:24:22 +02:00
e0b41b3682 Add articles/RAISE - Guide/ 2024-04-02 11:16:05 +02:00
5165c5a638 Update annotations 2024-04-02 11:12:01 +02:00
7f2ab40b70 Add articles/RAISE - The Raw Images Dataset/ 2024-04-02 11:03:54 +02:00
0d6a956db8 Shorten figure titles 2024-04-02 11:03:47 +02:00
f0db61efe2 Make single figure to compare multiple splitNXN values 2024-03-29 13:47:27 +01:00
81852d5dc6 Make Gaussian noise in getPrnuShownAsSuch only on text 2024-03-29 13:22:36 +01:00
ec7c5c6688 Add gaussianNoise to getPrnuShownAsSuch but applies on the whole PRNU image 2024-03-29 13:16:50 +01:00
2d96bdc225 Not correct generalized SPLIT_N_X_N due to imageWithoutPrnuNpArrayTile 2024-03-29 13:11:24 +01:00
96bbd50a3b Generalize with a partial image SPLIT_N_X_N 2024-03-29 12:57:56 +01:00
4bf9ef8206 Add splitNxN compatible with 1 and 4 2024-03-29 12:44:42 +01:00
60eceb575e Simplify grayscale rendering 2024-03-29 12:16:13 +01:00
b375acbb3a Use v{min,max} for enforcing matplotlib colormap
If it proceeds linearly to *covers the complete value range of the supplied data* then doing so is unnecessary and even if it is another not very different scale transformation then it is still fine for my goal.
2024-03-29 12:11:41 +01:00
5fa61f7ff8 Make PRNU compatible with 4x4 split 2024-03-29 11:23:48 +01:00
8351e46437 Comparison of an image without and with Gaussian noise and PRNU 2024-03-29 01:55:46 +01:00
2f66e82f22 Show both RMS and RMS normalized 2024-03-29 01:47:01 +01:00
3ccec5bbd0 Add RMS computation 2024-03-29 01:35:48 +01:00
f297060f42 Split images in 4x4 to increase PRNU estimation accuracy 2024-03-29 01:21:26 +01:00
9b57d3441c Render PRNU estimate taking into account all images 2024-03-29 01:10:31 +01:00
d59a251b1f Revert to some extent previous commit 2024-03-29 01:07:48 +01:00
4382b3d649 Add PRNU_FACTOR 0.1 and 0.01 view on a single figure 2024-03-29 01:05:28 +01:00
dfe2540c02 Apply Context-Adaptive Interpolator 2024-03-29 00:06:13 +01:00
9a3cfd7ba1 Add PRNU showing such 2024-03-28 22:24:16 +01:00
ba5a1b742b #24: Make executions reproducible 2024-03-28 22:20:40 +01:00
a99e942d3a Add datasets/noise_free_test_images/estimate_prnu.py 2024-03-28 17:06:58 +01:00
0953fb7475 Add issue reference to datasets/fake/generate_dataset.py 2024-03-28 17:06:36 +01:00
82e7026264 Add algorithms/image_utils/image_utils.py and move there randomGaussianImage and showImageWithMatplotlib 2024-03-28 16:32:38 +01:00
70ccb094d5 Rename randomImage to randomGaussianImage 2024-03-28 16:18:32 +01:00
64eaeddf98 Update annotations 2024-03-28 15:26:57 +01:00
18d34a3101 Add datasets/noise_free_test_images/no_noise_images.zip.txt 2024-03-28 15:25:21 +01:00
cbc778c4dc Move datasets/noise_free_test_images/noise_free_test_images.{pdf.txt,xopp.xml} to datasets/noise_free_test_images/webpage/ 2024-03-28 15:22:28 +01:00
5af7afaf75 Add datasets/noise_free_test_images/ 2024-03-28 15:03:57 +01:00
77d6c038fe Update annotations 2024-03-28 14:50:45 +01:00
69368a9057 Add articles/Law of large numbers - Wikipedia/ 2024-03-28 14:50:41 +01:00
abfc9772e8 Update annotations 2024-03-28 14:47:13 +01:00
d716574973 Update annotations 2024-03-26 18:23:30 +01:00
2093f2e613 Update annotations 2024-03-26 18:21:12 +01:00
9028d4d12c Add __pycache__ to .gitignore
Note that I do not precisely know if Pyzo or Python script shell execution generate `__pycache__`.
2024-03-26 18:21:01 +01:00
811b355989 Add articles/Shot noise - Wikipedia/ 2024-03-26 18:20:28 +01:00
cfe718da7d Make x-axis logarithmic 2024-03-26 02:32:03 +01:00
2bc13c5949 #21: Make a RMS curve depending on the number of images considered for the mean 2024-03-26 01:59:22 +01:00
c2862eaf43 #21: Incorrect mean, as it is a RMS mean, not a mean of images 2024-03-26 01:55:08 +01:00
75 changed files with 2682 additions and 36 deletions

1
.gitignore vendored
View File

@ -1,2 +1,3 @@
*.pdf
*.xopp
__pycache__

View File

@ -6,6 +6,7 @@ from wiener_filter import wienerFilter
# Assume greyscale PIL image passed.
# What about other color channels? See #11.
# `THRESHOLD` seems to have been designed to assume 256 range based images.
def contextAdaptiveInterpolator(I, IImage, showProgress = False):
rImage = Image.new('L', (IImage.size[0] - 2, IImage.size[1] - 2))
r = rImage.load()

View File

@ -14,5 +14,13 @@ def rmsDiffPil(im1, im2):
map(lambda h, i: h*(i**2), h, range(256))
) / (float(im1.size[0]) * im1.size[1]))
def rmsDiffNumpy(image0, image1):
def normalizeImage(image):
image = image - image.min()
image = image / image.max()
return image
def rmsDiffNumpy(image0, image1, normalize = False):
if normalize:
image0 = normalizeImage(image0)
image1 = normalizeImage(image1)
return np.sqrt(np.mean(np.square(image0 - image1)))

View File

@ -0,0 +1,41 @@
from PIL import Image, ImageFont, ImageDraw
import numpy as np
from matplotlib import pyplot as plt
import os
def randomGaussianImage(scale, size):
return np.random.normal(loc = 0, scale = scale, size = size)
# `cmap` source: https://matplotlib.org/3.8.0/api/_as_gen/matplotlib.pyplot.imshow.html
def showImageWithMatplotlib(npArray, title = None, cmap = 'viridis'):
if title is not None:
plt.title(title)
plt.imshow(npArray, cmap = cmap)
plt.show()
def toPilImage(npArray):
return Image.fromarray(npArray)
def getPrnuShownAsSuch(size, gaussianNoise = 0):
# Supports `WIDTH` > `HEIGHT` and conversely.
WIDTH, HEIGHT = size
TEXT = 'PRNU'
imagePil = Image.new('L', size)
draw = ImageDraw.Draw(imagePil)
fontPath = os.path.expanduser('~/.local/share/fonts/impact.ttf')
for fontSize in range(1, HEIGHT + 1):
font = ImageFont.truetype(fontPath, fontSize)
if font.getlength(TEXT) > WIDTH:
break
# Center vertically, especially in the case `HEIGHT` > `WIDTH`.
draw.text((0, HEIGHT // 2 - fontSize // 2), TEXT, 255, font = font)
imageNpArray = np.array(imagePil)
gaussianNoiseNpArray = randomGaussianImage(gaussianNoise, size[::-1])
#prnuShownAsSuch = imageNpArray + gaussianNoiseNpArray
prnuShownAsSuch = imageNpArray
for y in range(HEIGHT):
for x in range(WIDTH):
if prnuShownAsSuch[y, x] != 0:
prnuShownAsSuch[y, x] += gaussianNoiseNpArray[y, x]
return prnuShownAsSuch

View File

@ -0,0 +1 @@
https://en.wikipedia.org/w/index.php?title=Additive_white_Gaussian_noise&oldid=1181981955

View File

@ -0,0 +1,71 @@
<?xml version="1.0" standalone="no"?>
<xournal creator="Xournal++ 1.1.3" fileversion="4">
<title>Xournal++ document - see https://github.com/xournalpp/xournalpp</title>
<page width="596.00000000" height="842.00000000">
<background type="pdf" domain="absolute" filename="/home/benjamin/Desktop/bens_folder/school/ens/asp/aria/internship/work/articles/Additive white Gaussian noise - Wikipedia/Additive white Gaussian noise - Wikipedia.pdf" pageno="1"/>
<layer>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">219.23126221 116.66876221 249.59614415 116.66876221</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">282.27008043 115.89624647 365.87348768 115.89624647</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">414.12463572 115.33402143 502.84167644 115.33402143</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">525.41745112 116.46851411 549.98038306 116.46851411</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">45.48368733 130.84963047 316.54965705 130.84963047</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">65.95964095 161.18128294 116.36209726 161.18128294</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">204.66243477 161.86225369 489.57477128 161.86225369</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">65.15962642 174.73567329 173.02005238 174.73567329</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">66.10522424 194.23805655 99.10051288 194.23805655</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">284.78348157 194.11667409 525.13404451 194.11667409</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">66.74950970 206.37884792 153.44116574 206.37884792</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">66.75755754 254.21890041 121.97765921 251.84047822</stroke>
<text font="Sans" size="11.00000000" x="195.70223538" y="268.49453609" color="#00c0ffff" ts="0" fn="">?</text>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">47.37984799 286.80281727 326.33080978 286.80281727</stroke>
<text font="Sans" size="11.00000000" x="45.52112301" y="271.18305531" color="#00c0ffff" ts="0" fn="">repeated from Gaussian noise article</text>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">473.90232434 321.56314333 551.01037845 321.56314333</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">47.09694394 336.87045703 548.93863804 336.87045703</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">47.55242520 353.14517858 258.87888354 353.14517858</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">98.97325391 380.73374682 243.04630111 380.73374682</stroke>
<text font="Sans" size="11.00000000" x="347.01922353" y="361.51218168" color="#00c0ffff" ts="0" fn="">alt&#xE9;ration</text>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">321.28714334 381.54633743 495.31898507 381.54633743</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">526.23157925 380.97197384 552.31011695 380.97197384</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">45.13990767 398.25214907 554.15460484 398.25214907</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">46.53766281 413.21408287 301.31195731 413.21408287</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">392.84176947 412.61770052 545.72787385 412.61770052</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">47.10042014 429.70357255 311.08485529 429.70357255</stroke>
<text font="Sans" size="11.00000000" x="509.58737086" y="427.98022896" color="#00c0ffff" ts="0" fn="">mall&#xE9;able</text>
<text font="Sans" size="11.00000000" x="313.77427578" y="481.57816212" color="#ff00ffff" ts="0" fn="">s?</text>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">167.93611904 489.36492522 495.06057488 489.36492522</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">528.93321612 488.29021288 549.06824995 489.10932195</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">47.53600114 505.40731290 219.23178141 505.40731290</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">230.75816740 504.96521343 494.90218517 504.96521343</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">45.22885435 521.06965913 224.06358297 521.06965913</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">302.66833389 520.65274290 544.93656173 520.65274290</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">44.78351460 537.09053968 98.13815463 537.09053968</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">109.16421419 534.72136328 170.69177954 537.73903182</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">381.74041324 534.92771806 548.51328355 534.92771806</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">46.37198210 553.23962926 336.13926324 553.23962926</stroke>
</layer>
</page>
<page width="596.00000000" height="842.00000000">
<background type="pdf" pageno="2"/>
<layer/>
</page>
<page width="596.00000000" height="842.00000000">
<background type="pdf" pageno="3"/>
<layer/>
</page>
<page width="596.00000000" height="842.00000000">
<background type="pdf" pageno="4"/>
<layer/>
</page>
<page width="596.00000000" height="842.00000000">
<background type="pdf" pageno="5"/>
<layer/>
</page>
<page width="596.00000000" height="842.00000000">
<background type="pdf" pageno="6"/>
<layer/>
</page>
<page width="596.00000000" height="842.00000000">
<background type="pdf" pageno="7"/>
<layer/>
</page>
</xournal>

View File

@ -0,0 +1 @@
https://en.wikipedia.org/w/index.php?title=Bayer_filter&oldid=1189637393

View File

@ -0,0 +1,85 @@
<?xml version="1.0" standalone="no"?>
<xournal creator="Xournal++ 1.1.3" fileversion="4">
<title>Xournal++ document - see https://github.com/xournalpp/xournalpp</title>
<page width="596.00000000" height="842.00000000">
<background type="pdf" domain="absolute" filename="/home/benjamin/Desktop/bens_folder/school/ens/asp/aria/internship/work/articles/Bayer filter - Wikipedia/Bayer filter - Wikipedia.pdf" pageno="1"/>
<layer>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">126.90220123 116.63944465 260.24567532 116.63944465</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">49.20439000 131.57480700 262.52692461 131.57480700</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">48.01661193 149.51201223 190.53762779 149.51201223</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">203.23856391 164.73576684 262.85524241 164.73576684</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">48.84638740 181.11020152 261.00351850 181.11020152</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">47.82276454 195.88194746 206.49557936 195.88194746</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">214.87096590 211.35578113 261.48844701 211.35578113</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">46.29810084 228.85757779 231.46218515 228.85757779</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">116.99976301 245.01394133 247.10497858 245.01394133</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">46.86514083 261.01737305 89.08684543 261.01737305</stroke>
<stroke tool="pen" ts="0" fn="" color="#00c0ffff" width="1.41000000" fill="255">193.55548082 293.99662605 253.12910953 293.99662605</stroke>
<stroke tool="pen" ts="0" fn="" color="#00c0ffff" width="1.41000000" fill="255">90.28796304 310.73814295 122.63548303 310.73814295</stroke>
<text font="Sans" size="11.00000000" x="232.00244746" y="326.84852477" color="#00c0ffff" ts="0" fn="">?</text>
<stroke tool="pen" ts="0" fn="" color="#000000ff" width="1.41000000" fill="255">44.67642746 327.44568009 265.51954273 327.44568009</stroke>
<stroke tool="pen" ts="0" fn="" color="#000000ff" width="1.41000000" fill="255">43.03502427 342.69942492 90.05567870 342.69942492</stroke>
<stroke tool="pen" ts="0" fn="" color="#000000ff" width="1.41000000" fill="255">195.45419694 312.07555116 267.43085783 312.07555116</stroke>
<text font="Sans" size="11.00000000" x="270.84637190" y="533.35350132" color="#00c0ffff" ts="0" fn="">so the underlying grey slice is made of identical sensors,
right?</text>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">289.66716534 525.45088059 432.82439707 525.45088059</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">47.43618181 365.56584955 102.84467160 365.56584955</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">44.62315354 379.97672685 263.58467624 379.97672685</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">45.89703887 396.80498153 261.98939034 396.80498153</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">45.84851111 413.33069719 102.58495563 413.33069719</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">114.83998517 411.68788391 265.08794266 411.68788391</stroke>
<text font="Sans" size="11.00000000" x="95.53203396" y="431.61101410" color="#00c0ffff" ts="0" fn="">?</text>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">154.94223809 427.61936661 263.78245280 427.61936661</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">46.34518412 444.75623632 214.97234165 444.75623632</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">48.36247399 478.79578600 137.40968116 478.79578600</stroke>
<stroke tool="pen" ts="0" fn="" color="#000000ff" width="1.41000000" fill="255">177.03169114 513.83154774 238.93762387 513.83154774</stroke>
<stroke tool="pen" ts="0" fn="" color="#000000ff" width="1.41000000" fill="255">139.17001542 527.67742567 159.20571988 527.67742567</stroke>
<stroke tool="highlighter" color="#ff00007f" width="8.50000000" fill="128">242.82197214 522.79144906 262.35377242 522.79144906</stroke>
<stroke tool="highlighter" color="#ff00007f" width="8.50000000" fill="128">44.32223096 539.95672695 263.49931074 539.95672695</stroke>
<stroke tool="highlighter" color="#ff00007f" width="8.50000000" fill="128">44.97388787 554.07297549 264.74654440 554.07297549</stroke>
<stroke tool="highlighter" color="#ff00007f" width="8.50000000" fill="128">46.70851755 571.24281610 124.39341803 571.24281610</stroke>
<stroke tool="highlighter" color="#ff00007f" width="8.50000000" fill="128">179.50932412 569.94550950 549.36304911 569.94550950</stroke>
<stroke tool="highlighter" color="#ff00007f" width="8.50000000" fill="128">47.41422795 586.54881455 96.07576574 586.54881455</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">131.37799040 586.88283414 547.92420992 586.88283414</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">45.71015023 601.67159289 332.79881606 601.67159289</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">346.11542184 602.95115298 550.96854271 602.95115298</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">48.51774449 619.67611564 547.12467190 619.67611564</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">48.63157208 634.90402027 146.69447601 634.90402027</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">369.78876241 635.93872896 434.17640099 635.93872896</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">470.04334001 637.86654111 552.51842715 637.86654111</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">46.02560936 651.91416522 320.45770052 651.91416522</stroke>
</layer>
</page>
<page width="596.00000000" height="842.00000000">
<background type="pdf" pageno="2"/>
<layer/>
</page>
<page width="596.00000000" height="842.00000000">
<background type="pdf" pageno="3"/>
<layer/>
</page>
<page width="596.00000000" height="842.00000000">
<background type="pdf" pageno="4"/>
<layer/>
</page>
<page width="596.00000000" height="842.00000000">
<background type="pdf" pageno="5"/>
<layer/>
</page>
<page width="596.00000000" height="842.00000000">
<background type="pdf" pageno="6"/>
<layer/>
</page>
<page width="596.00000000" height="842.00000000">
<background type="pdf" pageno="7"/>
<layer/>
</page>
<page width="596.00000000" height="842.00000000">
<background type="pdf" pageno="8"/>
<layer/>
</page>
<page width="596.00000000" height="842.00000000">
<background type="pdf" pageno="9"/>
<layer/>
</page>
</xournal>

View File

@ -0,0 +1 @@
https://en.wikipedia.org/w/index.php?title=Bernoulli_distribution&oldid=1217644843

View File

@ -0,0 +1,88 @@
<?xml version="1.0" standalone="no"?>
<xournal creator="Xournal++ 1.1.3" fileversion="4">
<title>Xournal++ document - see https://github.com/xournalpp/xournalpp</title>
<page width="596.00000000" height="842.00000000">
<background type="pdf" domain="absolute" filename="/home/benjamin/Desktop/bens_folder/school/ens/asp/aria/internship/work/articles/Bernoulli distribution - Wikipedia/Bernoulli distribution - Wikipedia.pdf" pageno="1"/>
<layer>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">58.39801103 128.51587263 216.69295598 128.51587263</stroke>
<stroke tool="pen" ts="0" fn="" color="#000000ff" width="1.41000000">184.34705956 151.35033519 210.64076733 151.35033519</stroke>
<stroke tool="pen" ts="0" fn="" color="#000000ff" width="1.41000000">44.78902838 166.39958245 124.09452800 166.39958245</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">188.98121456 162.17231321 285.45738276 162.17231321</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">47.38844507 178.00006823 283.19406785 178.00006823</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">46.25536247 193.62224805 286.44839920 193.62224805</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">45.81051890 209.40300005 150.54272923 209.40300005</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">87.81769005 272.23298426 122.69212822 274.36538570</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">92.82280215 321.43697302 284.88742140 321.43697302</stroke>
<stroke tool="pen" ts="0" fn="" color="#00c0ffff" width="1.41000000">201.30265807 343.44803418 285.68421906 343.44803418</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">69.22838081 445.55572349 287.01408140 445.55572349</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">46.45167465 462.41160679 284.96467390 462.41160679</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">46.89514252 478.98184922 183.74997016 478.98184922</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">136.36666290 496.27061897 287.04527386 496.27061897</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">48.97000537 510.59989442 288.39533689 510.59989442</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">46.13720144 525.83401262 187.29651708 525.83401262</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">307.56784578 565.84427717 334.07989433 567.16577314</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">429.39067012 566.40569972 429.39067012 566.40569972</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">309.01063250 325.52050469 546.99200540 325.52050469</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">308.19048692 341.49578046 371.29718765 341.49578046</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">231.53892878 402.79818907 287.00196388 402.79818907</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">46.88198167 417.59556886 141.87516875 417.59556886</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">164.45322130 208.53163263 287.29700478 208.53163263</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">48.92544420 225.35848868 290.71470857 225.35848868</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">289.07923766 243.81070957 44.76877302 243.81070957</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">44.98847027 257.25197165 123.09974814 257.25197165</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">306.63330078 421.09164429 369.33345891 421.09164429</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">427.75036621 425.95483398 474.55235769 425.95483398</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">426.30920410 453.30279541 466.39874268 455.27575684</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">305.55755615 492.90979004 327.48278809 490.74005127</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">426.13256836 486.90484619 426.13256836 508.63690186 519.65185547 508.63690186 519.65185547 486.90484619 426.13256836 486.90484619</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">308.25189209 671.86132812 354.47829378 671.86132812</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">428.17962646 674.16619873 482.32143170 674.16619873</stroke>
<text font="Sans" size="11.00000000" x="514.78900146" y="590.28610229" color="#00c0ffff" ts="0" fn="">means 0 or 1
depending on
the convetion?</text>
</layer>
</page>
<page width="596.00000000" height="842.00000000">
<background type="pdf" pageno="2"/>
<layer>
<stroke tool="pen" ts="0" fn="" color="#00c0ffff" width="1.41000000">115.88931274 627.26452637 120.54162888 631.91684250</stroke>
<stroke tool="pen" ts="0" fn="" color="#00c0ffff" width="1.41000000">120.51440430 631.94390869 127.80136108 617.64190674</stroke>
<stroke tool="pen" ts="0" fn="" color="#00c0ffff" width="1.41000000">204.67007446 628.86901855 209.65606689 632.61004639</stroke>
<stroke tool="pen" ts="0" fn="" color="#00c0ffff" width="1.41000000">209.65606689 632.61004639 217.05976442 619.78646611</stroke>
<stroke tool="pen" ts="0" fn="" color="#00c0ffff" width="1.41000000">293.55010986 628.92156982 298.51989746 632.47088623</stroke>
<stroke tool="pen" ts="0" fn="" color="#00c0ffff" width="1.41000000">298.51989746 632.76538086 304.63792354 622.16864886</stroke>
<stroke tool="pen" ts="0" fn="" color="#00c0ffff" width="1.41000000">340.52984619 627.46667480 344.49609375 632.46130371</stroke>
<stroke tool="pen" ts="0" fn="" color="#00c0ffff" width="1.41000000">344.49609375 632.46130371 352.10037264 619.29030632</stroke>
<stroke tool="pen" ts="0" fn="" color="#00c0ffff" width="1.41000000">399.63580322 631.79779053 404.29614258 635.96820068</stroke>
<stroke tool="pen" ts="0" fn="" color="#00c0ffff" width="1.41000000">404.29614258 635.96820068 413.01318359 623.00402832</stroke>
<stroke tool="pen" ts="0" fn="" color="#00c0ffff" width="1.41000000">371.13830566 574.79446411 373.44151835 578.78374551</stroke>
<stroke tool="pen" ts="0" fn="" color="#00c0ffff" width="1.41000000">373.43127441 578.78964233 379.77582203 567.80056352</stroke>
<stroke tool="pen" ts="0" fn="" color="#00c0ffff" width="1.41000000">394.86224365 572.66491699 397.83325195 576.48571777</stroke>
<stroke tool="pen" ts="0" fn="" color="#00c0ffff" width="1.41000000">397.83325195 576.48571777 403.39910889 565.21679688</stroke>
<stroke tool="pen" ts="0" fn="" color="#00c0ffff" width="1.41000000">104.44085693 341.31556702 106.80545044 344.84814453</stroke>
<stroke tool="pen" ts="0" fn="" color="#00c0ffff" width="1.41000000">106.80545044 344.84814453 113.69998169 335.51425171</stroke>
<stroke tool="pen" ts="0" fn="" color="#00c0ffff" width="1.41000000">140.17398071 515.92907715 146.38548766 522.14058409</stroke>
<stroke tool="pen" ts="0" fn="" color="#00c0ffff" width="1.41000000">146.32962036 522.19595337 156.63482666 507.33224487</stroke>
<stroke tool="pen" ts="0" fn="" color="#00c0ffff" width="1.41000000">112.01626587 517.14801025 116.85723377 521.98897815</stroke>
<stroke tool="pen" ts="0" fn="" color="#00c0ffff" width="1.41000000">116.86718750 521.97900391 127.12222290 509.69891357</stroke>
<stroke tool="pen" ts="0" fn="" color="#00c0ffff" width="1.41000000">270.68261719 412.54077148 276.12139893 419.70938110</stroke>
<stroke tool="pen" ts="0" fn="" color="#00c0ffff" width="1.41000000">275.95861816 419.54663086 284.34988494 405.01253047</stroke>
<stroke tool="pen" ts="0" fn="" color="#00c0ffff" width="1.41000000">341.41900635 414.51989746 345.85949707 419.58276367</stroke>
<stroke tool="pen" ts="0" fn="" color="#00c0ffff" width="1.41000000">345.85949707 419.58276367 355.18725586 405.06564331</stroke>
<stroke tool="pen" ts="0" fn="" color="#00c0ffff" width="1.41000000">104.01873779 414.21359253 107.65905762 418.17691040</stroke>
<stroke tool="pen" ts="0" fn="" color="#00c0ffff" width="1.41000000">107.65905762 418.17691040 114.47683716 409.73007202</stroke>
</layer>
</page>
<page width="596.00000000" height="842.00000000">
<background type="pdf" pageno="3"/>
<layer/>
</page>
<page width="596.00000000" height="842.00000000">
<background type="pdf" pageno="4"/>
<layer/>
</page>
<page width="596.00000000" height="842.00000000">
<background type="pdf" pageno="5"/>
<layer/>
</page>
</xournal>

View File

@ -0,0 +1 @@
https://en.wikipedia.org/w/index.php?title=Binomial_distribution&oldid=1216559260

View File

@ -0,0 +1,140 @@
<?xml version="1.0" standalone="no"?>
<xournal creator="Xournal++ 1.1.3" fileversion="4">
<title>Xournal++ document - see https://github.com/xournalpp/xournalpp</title>
<page width="596.00000000" height="842.00000000">
<background type="pdf" domain="absolute" filename="/home/benjamin/Desktop/bens_folder/school/ens/asp/aria/internship/work/articles/Binomial distribution - Wikipedia/Binomial distribution - Wikipedia.pdf" pageno="1"/>
<layer>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">64.95669943 115.20582926 226.39842711 115.20582926</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">114.92674589 130.99021539 232.51185632 130.99021539</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">277.51112665 129.61831154 308.65047463 129.61831154</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">44.33188378 146.65764422 310.07584361 146.65764422</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">45.95347690 163.05356273 236.10367864 163.05356273</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">247.72486984 164.09210045 266.72011342 164.09210045</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">45.63227424 179.80833218 116.82980080 179.80833218</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">97.58331505 195.52646697 313.30119412 195.52646697</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">45.55717256 209.11419508 154.67763596 209.11419508</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">199.32871417 209.46160481 227.42689977 209.46160481</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">44.95412367 225.53730656 96.97182314 225.53730656</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">116.10654491 225.28614987 308.43950419 225.28614987</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">46.80112499 241.92593386 97.02547206 241.92593386</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">144.62530192 243.08734438 313.88092485 243.08734438</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">44.37620419 256.81417854 126.06003568 256.81417854</stroke>
<stroke tool="pen" ts="0" fn="" color="#00c0ffff" width="1.41000000">140.63272684 264.62624290 308.76289527 264.62624290</stroke>
<stroke tool="pen" ts="0" fn="" color="#00c0ffff" width="1.41000000">43.74794562 280.72443732 286.01312177 280.72443732</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">295.13643811 272.62794730 310.64545219 272.62794730</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">45.10786944 290.55320688 306.21760237 290.55320688</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">45.81654905 304.07020116 224.12416886 304.07020116</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">344.30289322 309.22817629 527.24272617 309.22817629</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">364.91622180 141.31435105 510.44910553 141.31435105</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">411.35475852 494.59297759 436.36619516 495.87957667</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">330.77775939 710.37350948 355.94176248 710.37350948</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">409.70061866 711.94231018 417.02726661 711.94231018</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">328.83724496 729.99019035 368.93950214 729.99019035</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">410.50223817 729.87772700 462.42057587 729.87772700</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">328.54192836 767.05063634 374.48617242 767.05063634</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">329.15338048 629.76945494 350.51774407 629.76945494</stroke>
<stroke tool="pen" ts="0" fn="" color="#00c0ffff" width="1.41000000">464.55856770 635.39301230 468.11341845 638.13115671</stroke>
<stroke tool="pen" ts="0" fn="" color="#00c0ffff" width="1.41000000">468.11341845 638.42599182 474.43372544 627.47889900</stroke>
<stroke tool="pen" ts="0" fn="" color="#00c0ffff" width="1.41000000">428.04285246 711.54950240 431.30394612 714.81059606</stroke>
<stroke tool="pen" ts="0" fn="" color="#00c0ffff" width="1.41000000">431.57761801 714.80899068 436.25529770 706.70701180</stroke>
<stroke tool="pen" ts="0" fn="" color="#00c0ffff" width="1.41000000">470.60838523 729.52928550 475.08128544 733.23381225</stroke>
<stroke tool="pen" ts="0" fn="" color="#00c0ffff" width="1.41000000">475.08128544 733.23381225 482.38908752 724.39572902</stroke>
<stroke tool="pen" ts="0" fn="" color="#00c0ffff" width="1.41000000">429.72987151 775.21614058 432.56600301 780.12846442</stroke>
<stroke tool="pen" ts="0" fn="" color="#00c0ffff" width="1.41000000">432.65529435 780.39362769 435.76973816 774.09116314</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">409.69928882 768.16174216 476.55437189 768.16174216</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">411.90219481 625.17482835 411.90219481 644.15974262 454.94624137 644.15974262 454.94624137 625.17482835 411.90219481 625.17482835</stroke>
<stroke tool="pen" ts="0" fn="" color="#00c0ffff" width="1.41000000">406.16062545 777.83340695 410.99325934 782.66604083</stroke>
<stroke tool="pen" ts="0" fn="" color="#00c0ffff" width="1.41000000">410.95232086 782.70663542 417.04579388 775.08627464</stroke>
</layer>
</page>
<page width="596.00000000" height="842.00000000">
<background type="pdf" pageno="2"/>
<layer>
<stroke tool="pen" ts="0" fn="" color="#00c0ffff" width="1.41000000">104.27368072 641.47694715 107.68105660 645.61004983</stroke>
<stroke tool="pen" ts="0" fn="" color="#00c0ffff" width="1.41000000">107.68105660 645.61004983 115.86909935 632.79282751</stroke>
<stroke tool="pen" ts="0" fn="" color="#00c0ffff" width="1.41000000">258.94481450 565.67644195 261.37794363 569.24044110</stroke>
<stroke tool="pen" ts="0" fn="" color="#00c0ffff" width="1.41000000">261.37794363 569.24044110 271.19359820 557.34060332</stroke>
</layer>
</page>
<page width="596.00000000" height="842.00000000">
<background type="pdf" pageno="3"/>
<layer/>
</page>
<page width="596.00000000" height="842.00000000">
<background type="pdf" pageno="4"/>
<layer>
<stroke tool="pen" ts="0" fn="" color="#00c0ffff" width="1.41000000">100.48276011 352.99510655 105.26954886 356.91754393</stroke>
<stroke tool="pen" ts="0" fn="" color="#00c0ffff" width="1.41000000">105.26954886 356.91754393 110.24121296 348.30636911</stroke>
<stroke tool="pen" ts="0" fn="" color="#00c0ffff" width="1.41000000">206.44304718 354.42030725 209.36282965 356.91660387</stroke>
<stroke tool="pen" ts="0" fn="" color="#00c0ffff" width="1.41000000">209.52163112 356.91660387 213.67618019 349.72071380</stroke>
<stroke tool="pen" ts="0" fn="" color="#00c0ffff" width="1.41000000">325.23960999 354.91322002 328.24175095 357.46316888</stroke>
<stroke tool="pen" ts="0" fn="" color="#00c0ffff" width="1.41000000">328.24175095 357.46316888 334.25401190 349.71672534</stroke>
<stroke tool="pen" ts="0" fn="" color="#00c0ffff" width="1.41000000">394.69211501 355.66442018 397.32175458 358.29405976</stroke>
<stroke tool="pen" ts="0" fn="" color="#00c0ffff" width="1.41000000">397.26077337 358.35365851 404.54537200 350.34237008</stroke>
<stroke tool="pen" ts="0" fn="" color="#00c0ffff" width="1.41000000">151.61834419 460.00821567 154.83027385 463.22014534</stroke>
<stroke tool="pen" ts="0" fn="" color="#00c0ffff" width="1.41000000">155.11546146 463.23076645 162.28395114 454.89949055</stroke>
<stroke tool="pen" ts="0" fn="" color="#00c0ffff" width="1.41000000">117.32096568 407.70127019 121.10000943 410.34153366</stroke>
<stroke tool="pen" ts="0" fn="" color="#00c0ffff" width="1.41000000">121.10000943 410.16601746 124.15840849 398.75191679</stroke>
<stroke tool="pen" ts="0" fn="" color="#00c0ffff" width="1.41000000">102.85872897 267.71911117 106.69763853 271.05015870</stroke>
<stroke tool="pen" ts="0" fn="" color="#00c0ffff" width="1.41000000">106.69763853 271.05015870 112.24773358 262.75522417</stroke>
<stroke tool="pen" ts="0" fn="" color="#00c0ffff" width="1.41000000">149.68324084 408.99626103 153.17322740 411.85276138</stroke>
<stroke tool="pen" ts="0" fn="" color="#00c0ffff" width="1.41000000">153.17322740 411.85276138 158.50412470 402.61937640</stroke>
</layer>
</page>
<page width="596.00000000" height="842.00000000">
<background type="pdf" pageno="5"/>
<layer/>
</page>
<page width="596.00000000" height="842.00000000">
<background type="pdf" pageno="6"/>
<layer/>
</page>
<page width="596.00000000" height="842.00000000">
<background type="pdf" pageno="7"/>
<layer/>
</page>
<page width="596.00000000" height="842.00000000">
<background type="pdf" pageno="8"/>
<layer/>
</page>
<page width="596.00000000" height="842.00000000">
<background type="pdf" pageno="9"/>
<layer/>
</page>
<page width="596.00000000" height="842.00000000">
<background type="pdf" pageno="10"/>
<layer/>
</page>
<page width="596.00000000" height="842.00000000">
<background type="pdf" pageno="11"/>
<layer/>
</page>
<page width="596.00000000" height="842.00000000">
<background type="pdf" pageno="12"/>
<layer/>
</page>
<page width="596.00000000" height="842.00000000">
<background type="pdf" pageno="13"/>
<layer/>
</page>
<page width="596.00000000" height="842.00000000">
<background type="pdf" pageno="14"/>
<layer/>
</page>
<page width="596.00000000" height="842.00000000">
<background type="pdf" pageno="15"/>
<layer/>
</page>
<page width="596.00000000" height="842.00000000">
<background type="pdf" pageno="16"/>
<layer/>
</page>
<page width="596.00000000" height="842.00000000">
<background type="pdf" pageno="17"/>
<layer/>
</page>
<page width="596.00000000" height="842.00000000">
<background type="pdf" pageno="18"/>
<layer/>
</page>
</xournal>

View File

@ -0,0 +1 @@
https://en.wikipedia.org/w/index.php?title=Central_limit_theorem&oldid=1215825721

View File

@ -0,0 +1,110 @@
<?xml version="1.0" standalone="no"?>
<xournal creator="Xournal++ 1.1.3" fileversion="4">
<title>Xournal++ document - see https://github.com/xournalpp/xournalpp</title>
<page width="596.00000000" height="842.00000000">
<background type="pdf" domain="absolute" filename="/home/benjamin/Desktop/bens_folder/school/ens/asp/aria/internship/work/articles/Central limit theorem - Wikipedia/Central limit theorem - Wikipedia.pdf" pageno="1"/>
<layer>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">260.89982170 110.92044301 279.56123402 110.92044301</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">55.99670223 113.54035656 130.56803186 113.54035656</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">341.43539980 113.02021747 551.10613822 113.02021747</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">44.21747152 125.79380721 382.48339096 125.79380721</stroke>
<text font="Sans" size="11.00000000" x="138.05411551" y="127.33278857" color="#00c0ffff" ts="0" fn="">?</text>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">412.25285618 125.33357353 548.56528994 125.33357353</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">45.40047842 139.60692476 206.52969519 139.60692476</stroke>
<stroke tool="pen" ts="0" fn="" color="#00c0ffff" width="1.41000000" fill="255">220.62631100 145.23651225 374.20262558 145.23651225</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">350.88277988 175.99915230 551.87400722 175.99915230</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">45.06321343 188.99195752 427.05389259 188.99195752</stroke>
<stroke tool="pen" ts="0" fn="" color="#000000ff" width="1.41000000" fill="255">95.96601681 230.37040423 113.74105723 230.37040423</stroke>
<stroke tool="pen" ts="0" fn="" color="#000000ff" width="1.41000000" fill="255">44.48110537 243.33492425 62.81544478 243.33492425</stroke>
<stroke tool="pen" ts="0" fn="" color="#000000ff" width="1.41000000" fill="255">158.93006909 242.83492038 380.45307127 242.83492038</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">305.93887703 262.04504901 549.34883463 262.04504901</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">46.02220034 275.68620424 553.39713087 275.68620424</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">44.09797334 288.96467533 551.76270293 288.96467533</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">43.37421003 303.77288145 240.20379036 303.77288145</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">43.08725183 328.32451380 99.08342474 328.32451380</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">171.98063280 328.59784008 551.26559343 328.59784008</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">43.56849618 341.79512411 549.90745962 341.79512411</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">44.83613980 353.93009794 553.50890773 353.93009794</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">44.15394968 367.55368176 550.13284186 367.55368176</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">44.07347132 381.27393965 88.87149933 381.27393965</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">257.38958110 403.94182390 549.89955688 403.94182390</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">43.20486363 417.94489205 110.19439307 417.94489205</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">193.96785895 417.61635024 553.08862399 417.61635024</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">44.96861331 430.68834149 458.83893227 430.68834149</stroke>
<stroke tool="pen" ts="0" fn="" color="#000000ff" width="1.41000000" fill="255">62.60863224 458.77105836 197.26550347 458.77105836</stroke>
<stroke tool="pen" ts="0" fn="" color="#000000ff" width="1.41000000" fill="255">248.25450542 457.94663977 273.37194979 457.94663977</stroke>
<stroke tool="pen" ts="0" fn="" color="#000000ff" width="1.41000000" fill="255">333.58733174 459.64987957 347.38090882 459.64987957</stroke>
<stroke tool="pen" ts="0" fn="" color="#000000ff" width="1.41000000" fill="255">423.07801915 458.09267225 467.28473203 458.09267225</stroke>
<stroke tool="pen" ts="0" fn="" color="#000000ff" width="1.41000000" fill="255">518.43105806 459.78769954 553.96557759 459.78769954</stroke>
<stroke tool="pen" ts="0" fn="" color="#000000ff" width="1.41000000" fill="255">120.55581437 472.30359595 234.72968303 472.30359595</stroke>
</layer>
</page>
<page width="596.00000000" height="842.00000000">
<background type="pdf" pageno="2"/>
<layer/>
</page>
<page width="596.00000000" height="842.00000000">
<background type="pdf" pageno="3"/>
<layer/>
</page>
<page width="596.00000000" height="842.00000000">
<background type="pdf" pageno="4"/>
<layer/>
</page>
<page width="596.00000000" height="842.00000000">
<background type="pdf" pageno="5"/>
<layer/>
</page>
<page width="596.00000000" height="842.00000000">
<background type="pdf" pageno="6"/>
<layer/>
</page>
<page width="596.00000000" height="842.00000000">
<background type="pdf" pageno="7"/>
<layer/>
</page>
<page width="596.00000000" height="842.00000000">
<background type="pdf" pageno="8"/>
<layer/>
</page>
<page width="596.00000000" height="842.00000000">
<background type="pdf" pageno="9"/>
<layer/>
</page>
<page width="596.00000000" height="842.00000000">
<background type="pdf" pageno="10"/>
<layer/>
</page>
<page width="596.00000000" height="842.00000000">
<background type="pdf" pageno="11"/>
<layer/>
</page>
<page width="596.00000000" height="842.00000000">
<background type="pdf" pageno="12"/>
<layer/>
</page>
<page width="596.00000000" height="842.00000000">
<background type="pdf" pageno="13"/>
<layer/>
</page>
<page width="596.00000000" height="842.00000000">
<background type="pdf" pageno="14"/>
<layer/>
</page>
<page width="596.00000000" height="842.00000000">
<background type="pdf" pageno="15"/>
<layer/>
</page>
<page width="596.00000000" height="842.00000000">
<background type="pdf" pageno="16"/>
<layer/>
</page>
<page width="596.00000000" height="842.00000000">
<background type="pdf" pageno="17"/>
<layer/>
</page>
<page width="596.00000000" height="842.00000000">
<background type="pdf" pageno="18"/>
<layer/>
</page>
</xournal>

View File

@ -0,0 +1 @@
https://en.wikipedia.org/w/index.php?title=Darktable&oldid=1204679832

View File

@ -0,0 +1,24 @@
<?xml version="1.0" standalone="no"?>
<xournal creator="Xournal++ 1.1.3" fileversion="4">
<title>Xournal++ document - see https://github.com/xournalpp/xournalpp</title>
<page width="596.00000000" height="842.00000000">
<background type="pdf" domain="absolute" filename="/home/benjamin/Desktop/bens_folder/school/ens/asp/aria/internship/work/articles/Darktable - Wikipedia/Darktable - Wikipedia.pdf" pageno="1"/>
<layer>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">171.91839600 86.09838867 380.90474598 86.09838867</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">399.04504395 298.73919678 399.04504395 329.40808105 548.97998047 329.40808105 548.97998047 298.73919678 399.04504395 298.73919678</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">397.33496094 474.64733887 529.55115858 474.64733887</stroke>
</layer>
</page>
<page width="596.00000000" height="842.00000000">
<background type="pdf" pageno="2"/>
<layer/>
</page>
<page width="596.00000000" height="842.00000000">
<background type="pdf" pageno="3"/>
<layer/>
</page>
<page width="596.00000000" height="842.00000000">
<background type="pdf" pageno="4"/>
<layer/>
</page>
</xournal>

View File

@ -0,0 +1 @@
https://en.wikipedia.org/w/index.php?title=Euclidean_distance&oldid=1214273566

View File

@ -0,0 +1,46 @@
<?xml version="1.0" standalone="no"?>
<xournal creator="Xournal++ 1.1.3" fileversion="4">
<title>Xournal++ document - see https://github.com/xournalpp/xournalpp</title>
<page width="596.00000000" height="842.00000000">
<background type="pdf" domain="absolute" filename="/home/benjamin/Desktop/bens_folder/school/ens/asp/aria/internship/work/articles/Euclidean distance - Wikipedia/Euclidean distance - Wikipedia.pdf" pageno="1"/>
<layer>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">47.82803345 86.03417969 253.66618545 86.03417969</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">365.56207275 718.79672241 418.46380171 718.79672241</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">504.88897705 717.97744751 552.20943148 717.97744751</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">44.43722534 734.76910400 95.61860032 734.76910400</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">65.49761963 773.49588013 65.49761963 794.56076050 164.82717896 794.56076050 164.82717896 773.49588013 65.49761963 773.49588013</stroke>
</layer>
</page>
<page width="596.00000000" height="842.00000000">
<background type="pdf" pageno="2"/>
<layer>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">48.17575073 578.32162476 183.91531199 578.32162476</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">57.02230835 599.30545044 135.76292576 599.30545044</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">63.75018311 641.64221191 63.75018311 663.64859009 310.04382324 663.64859009 310.04382324 641.64221191 63.75018311 641.64221191</stroke>
</layer>
</page>
<page width="596.00000000" height="842.00000000">
<background type="pdf" pageno="3"/>
<layer/>
</page>
<page width="596.00000000" height="842.00000000">
<background type="pdf" pageno="4"/>
<layer/>
</page>
<page width="596.00000000" height="842.00000000">
<background type="pdf" pageno="5"/>
<layer/>
</page>
<page width="596.00000000" height="842.00000000">
<background type="pdf" pageno="6"/>
<layer/>
</page>
<page width="596.00000000" height="842.00000000">
<background type="pdf" pageno="7"/>
<layer/>
</page>
<page width="596.00000000" height="842.00000000">
<background type="pdf" pageno="8"/>
<layer/>
</page>
</xournal>

View File

@ -0,0 +1 @@
https://en.wikipedia.org/w/index.php?title=Gaussian_noise&oldid=1164238110

View File

@ -0,0 +1,56 @@
<?xml version="1.0" standalone="no"?>
<xournal creator="Xournal++ 1.1.3" fileversion="4">
<title>Xournal++ document - see https://github.com/xournalpp/xournalpp</title>
<page width="596.00000000" height="842.00000000">
<background type="pdf" domain="absolute" filename="/home/benjamin/Desktop/bens_folder/school/ens/asp/aria/internship/work/articles/Gaussian noise - Wikipedia/Gaussian noise - Wikipedia.pdf" pageno="1"/>
<layer>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">59.77952914 116.32475987 138.37194792 116.32475987</stroke>
<stroke tool="pen" ts="0" fn="" color="#000000ff" width="1.41000000" fill="255">43.97090883 137.84917812 145.71177075 137.84917812</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">221.64659987 131.69192688 276.15898641 131.69192688</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">46.12122979 149.89510674 213.69574039 149.89510674</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">43.63818781 166.55204319 136.98535452 166.55204319</stroke>
<stroke tool="pen" ts="0" fn="" color="#00c0ffff" width="1.41000000" fill="255">147.22195783 170.89005825 334.79673045 170.89005825</stroke>
<stroke tool="pen" ts="0" fn="" color="#00c0ffff" width="1.41000000" fill="255">43.22340430 187.71599717 101.44439248 187.71599717</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">69.65586661 226.08833425 330.01499756 226.08833425</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">45.62069440 240.75111236 89.52200937 240.75111236</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">75.73501569 265.66597080 75.73501569 286.17084014 207.03728640 286.17084014 207.03728640 265.66597080 75.73501569 265.66597080</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">66.83389213 327.82632335 66.83389213 327.82632335</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">80.40172889 312.03730674 80.40172889 312.03730674</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">220.53653625 312.59058766 220.53653625 312.59058766</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">253.45664672 311.68821283 332.52014600 311.68821283</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">165.73571205 311.15210730 206.46443729 311.15210730</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">89.65612557 329.32362525 178.44910523 329.32362525</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">359.55484965 529.92422686 456.99462864 529.92422686</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">195.42747504 597.45651525 299.27981616 597.45651525</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">315.65918736 620.79945057 425.46111793 620.79945057</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">456.13100958 622.09169002 512.24981986 622.09169002</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">61.84610966 638.94162029 377.64176392 638.94162029</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">413.14510087 637.63512361 522.19334667 637.63512361</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">248.43295019 654.61341072 419.21567888 654.61341072</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">116.31120091 670.33016147 547.79637663 670.33016147</stroke>
<text font="Sans" size="11.00000000" x="209.36046595" y="685.17491945" color="#00c0ffff" ts="0" fn="">?</text>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">47.08957561 684.07357696 327.48701267 684.07357696</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">159.54763265 702.85486284 500.58909952 702.85486284</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">131.61697216 357.10037426 225.79664785 357.10037426</stroke>
<text font="Sans" size="11.00000000" x="36.57636271" y="374.49009107" color="#00c0ffff" ts="0" fn="">what does correlated Gaussian noise looks like?</text>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">69.96082353 465.09356017 160.25432051 465.09356017</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">210.93570325 465.05028820 322.99082701 465.05028820</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">288.28508028 480.86729819 330.78664903 480.86729819</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">46.33928842 495.48684602 112.65648196 495.48684602</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">190.14781522 497.73100629 289.83345467 497.73100629</stroke>
<stroke tool="pen" ts="0" fn="" color="#00c0ffff" width="1.41000000" fill="255">62.11325572 536.03399566 327.61054413 536.03399566</stroke>
<stroke tool="pen" ts="0" fn="" color="#00c0ffff" width="1.41000000" fill="255">44.87181417 552.58665000 329.58591405 552.58665000</stroke>
<stroke tool="pen" ts="0" fn="" color="#00c0ffff" width="1.41000000" fill="255">46.39351387 568.77107570 285.76502353 568.77107570</stroke>
<stroke tool="pen" ts="0" fn="" color="#00c0ffff" width="1.41000000" fill="255">65.14495126 379.45216051 333.88466138 379.45216051</stroke>
<stroke tool="pen" ts="0" fn="" color="#00c0ffff" width="1.41000000" fill="255">45.18537962 395.49320091 307.79890951 395.49320091</stroke>
<stroke tool="pen" ts="0" fn="" color="#00c0ffff" width="1.41000000" fill="255">44.89920307 411.53674259 281.73657897 411.53674259</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">291.87486126 403.30172806 331.23492638 403.30172806</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">44.70947132 421.49725821 327.47840845 421.49725821</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">46.22403198 439.29541993 147.84825133 439.29541993</stroke>
</layer>
</page>
<page width="596.00000000" height="842.00000000">
<background type="pdf" pageno="2"/>
<layer/>
</page>
</xournal>

View File

@ -0,0 +1 @@
https://en.wikipedia.org/w/index.php?title=Inflection_point&oldid=1212687466

View File

@ -0,0 +1,38 @@
<?xml version="1.0" standalone="no"?>
<xournal creator="Xournal++ 1.1.3" fileversion="4">
<title>Xournal++ document - see https://github.com/xournalpp/xournalpp</title>
<page width="596.00000000" height="842.00000000">
<background type="pdf" domain="absolute" filename="/home/benjamin/Desktop/bens_folder/school/ens/asp/aria/internship/work/articles/Inflection point - Wikipedia/Inflection point - Wikipedia.pdf" pageno="1"/>
<layer>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">61.29141449 114.74036167 280.30382617 114.74036167</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">89.48618303 131.26738424 317.36556836 131.26738424</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">333.46642452 132.56962043 365.69036718 132.56962043</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">45.23560304 150.10626812 93.35383644 150.10626812</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">421.10855252 295.00141330 445.58823583 293.95333741</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">491.23936860 292.88891363 535.44621358 292.88891363</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">429.82630798 307.21071445 452.10446101 305.57283076</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">502.73690629 308.69566633 516.88344312 306.74235790</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">388.81146254 322.86056874 462.71625553 322.86056874</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">130.66897833 150.33135532 362.26465131 150.33135532</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">47.78066817 164.17115725 155.69646830 164.17115725</stroke>
<text font="Sans" size="11.00000000" x="56.91497367" y="164.01080914" color="#00c0ffff" ts="0" fn="">?</text>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">137.64571857 181.93092031 362.03031890 181.93092031</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">48.34196462 197.04308284 81.79332933 197.04308284</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">201.29009336 196.44201724 245.77334150 196.44201724</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">357.71388993 196.00523297 357.71388993 196.00523297</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">45.32365921 213.65782912 92.18628460 213.65782912</stroke>
</layer>
</page>
<page width="596.00000000" height="842.00000000">
<background type="pdf" pageno="2"/>
<layer/>
</page>
<page width="596.00000000" height="842.00000000">
<background type="pdf" pageno="3"/>
<layer/>
</page>
<page width="596.00000000" height="842.00000000">
<background type="pdf" pageno="4"/>
<layer/>
</page>
</xournal>

View File

@ -0,0 +1 @@
https://en.wikipedia.org/w/index.php?title=IrfanView&oldid=1214028358

View File

@ -0,0 +1,26 @@
<?xml version="1.0" standalone="no"?>
<xournal creator="Xournal++ 1.1.3" fileversion="4">
<title>Xournal++ document - see https://github.com/xournalpp/xournalpp</title>
<page width="596.00000000" height="842.00000000">
<background type="pdf" domain="absolute" filename="/home/benjamin/Desktop/bens_folder/school/ens/asp/aria/internship/work/articles/IrfanView - Wikipedia/IrfanView - Wikipedia.pdf" pageno="1"/>
<layer/>
</page>
<page width="596.00000000" height="842.00000000">
<background type="pdf" pageno="2"/>
<layer>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">374.13684082 45.68719482 543.92017829 45.68719482</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">488.56939697 62.39920044 522.71179588 62.39920044</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">490.82409668 78.59756470 503.62634277 78.59756470</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">487.12432861 94.79483032 545.10872641 94.79483032</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">490.08135986 110.23706055 504.16247559 111.84231567</stroke>
</layer>
</page>
<page width="596.00000000" height="842.00000000">
<background type="pdf" pageno="3"/>
<layer/>
</page>
<page width="596.00000000" height="842.00000000">
<background type="pdf" pageno="4"/>
<layer/>
</page>
</xournal>

View File

@ -0,0 +1 @@
https://en.wikipedia.org/w/index.php?title=Law_of_large_numbers&oldid=1214684685

View File

@ -0,0 +1,62 @@
<?xml version="1.0" standalone="no"?>
<xournal creator="Xournal++ 1.1.3" fileversion="4">
<title>Xournal++ document - see https://github.com/xournalpp/xournalpp</title>
<page width="596.00000000" height="842.00000000">
<background type="pdf" domain="absolute" filename="/home/benjamin/Desktop/bens_folder/school/ens/asp/aria/internship/work/articles/Law of large numbers - Wikipedia/Law of large numbers - Wikipedia.pdf" pageno="1"/>
<layer>
<stroke tool="pen" ts="0" fn="" color="#00c0ffff" width="1.41000000" fill="255">172.79332005 455.71986902 176.74788473 461.64321741</stroke>
<stroke tool="pen" ts="0" fn="" color="#00c0ffff" width="1.41000000" fill="255">176.74788473 461.64321741 185.60032684 446.31033791</stroke>
<stroke tool="pen" ts="0" fn="" color="#00c0ffff" width="1.41000000" fill="255">551.70618022 154.14224043 556.89385206 161.24116676</stroke>
<stroke tool="pen" ts="0" fn="" color="#00c0ffff" width="1.41000000" fill="255">557.16641469 161.24116676 565.35602737 142.40508790</stroke>
<stroke tool="pen" ts="0" fn="" color="#00c0ffff" width="1.41000000" fill="255">380.32310272 214.79667307 115.27752645 382.17214760</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">54.81231868 100.23162958 121.10611350 100.23162958</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">44.94156833 77.24209718 229.25613510 77.24209718</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">241.87676723 99.25463731 255.19612112 99.25463731</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">282.25762979 100.01803628 364.60489826 100.01803628</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">67.07284300 111.51919777 366.62676024 111.51919777</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">43.00099023 124.14875416 357.10161952 124.14875416</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">186.66547704 136.27102646 365.04606404 136.27102646</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">44.06579223 149.49702205 286.77048459 149.49702205</stroke>
</layer>
</page>
<page width="596.00000000" height="842.00000000">
<background type="pdf" pageno="2"/>
<layer/>
</page>
<page width="596.00000000" height="842.00000000">
<background type="pdf" pageno="3"/>
<layer/>
</page>
<page width="596.00000000" height="842.00000000">
<background type="pdf" pageno="4"/>
<layer/>
</page>
<page width="596.00000000" height="842.00000000">
<background type="pdf" pageno="5"/>
<layer/>
</page>
<page width="596.00000000" height="842.00000000">
<background type="pdf" pageno="6"/>
<layer/>
</page>
<page width="596.00000000" height="842.00000000">
<background type="pdf" pageno="7"/>
<layer/>
</page>
<page width="596.00000000" height="842.00000000">
<background type="pdf" pageno="8"/>
<layer/>
</page>
<page width="596.00000000" height="842.00000000">
<background type="pdf" pageno="9"/>
<layer/>
</page>
<page width="596.00000000" height="842.00000000">
<background type="pdf" pageno="10"/>
<layer/>
</page>
<page width="596.00000000" height="842.00000000">
<background type="pdf" pageno="11"/>
<layer/>
</page>
</xournal>

View File

@ -0,0 +1 @@
https://en.wikipedia.org/w/index.php?title=Luminance&oldid=1187697481

View File

@ -0,0 +1,55 @@
<?xml version="1.0" standalone="no"?>
<xournal creator="Xournal++ 1.1.3" fileversion="4">
<title>Xournal++ document - see https://github.com/xournalpp/xournalpp</title>
<page width="596.00000000" height="842.00000000">
<background type="pdf" domain="absolute" filename="/home/benjamin/Desktop/bens_folder/school/ens/asp/aria/internship/work/articles/Luminance - Wikipedia/Luminance - Wikipedia.pdf" pageno="1"/>
<layer>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">117.75265572 99.17158832 402.26754961 99.17158832</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">42.47685194 111.45065182 158.69241466 111.45065182</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">246.70048345 112.13359938 305.47623976 112.13359938</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">314.53097259 111.38191858 405.23714627 111.38191858</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">43.77786234 125.41618549 372.06669407 125.41618549</stroke>
<text font="Sans" size="11.00000000" x="347.20994270" y="127.11979694" color="#00c0ffff" ts="0" fn="">?</text>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">450.46406498 189.80268332 518.39159278 189.80268332</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">61.08687140 226.70784755 79.65404781 226.70784755</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">152.74071208 227.99979453 276.96331863 227.99979453</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">294.14900490 228.81201821 405.18656815 228.81201821</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">44.54970975 240.71992376 75.61626658 240.71992376</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">144.67397546 241.21576154 323.67702229 241.21576154</stroke>
<text font="Sans" size="11.00000000" x="360.19728437" y="243.45066578" color="#00c0ffff" ts="0" fn="">pr&#xE9;c&#xE9;der</text>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">360.62080268 241.24257204 445.50281371 241.24257204</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">454.99939427 240.73060411 490.89198594 240.73060411</stroke>
<stroke tool="pen" ts="0" fn="" color="#00c0ffff" width="1.41000000">533.47255852 245.73505463 554.17895431 245.73505463</stroke>
<stroke tool="pen" ts="0" fn="" color="#00c0ffff" width="1.41000000">42.48972083 259.56241709 232.83679482 259.56241709</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">43.17298159 181.65327575 80.19344583 181.65327575</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">165.57036975 181.50904399 347.84281911 181.50904399</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">115.25484668 146.69218650 401.18208108 146.69218650</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">44.18739205 159.82809784 70.88386206 159.82809784</stroke>
<text font="Sans" size="11.00000000" x="395.51571133" y="149.13834877" color="#00c0ffff" ts="0" fn="">?</text>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">45.35759944 641.83935995 154.09149587 641.83935995</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">145.80175506 662.05788064 550.98822348 662.05788064</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">43.75707324 674.02559303 81.77270483 674.02559303</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">105.64200354 674.71626114 197.02879698 674.71626114</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">261.73065422 673.82330838 334.58230257 673.82330838</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">342.44227657 673.66506061 542.18834703 673.66506061</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">69.19434841 687.58257967 101.51797371 687.58257967</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">140.56313543 687.24793380 278.60087453 687.24793380</stroke>
</layer>
</page>
<page width="596.00000000" height="842.00000000">
<background type="pdf" pageno="2"/>
<layer/>
</page>
<page width="596.00000000" height="842.00000000">
<background type="pdf" pageno="3"/>
<layer/>
</page>
<page width="596.00000000" height="842.00000000">
<background type="pdf" pageno="4"/>
<layer/>
</page>
<page width="596.00000000" height="842.00000000">
<background type="pdf" pageno="5"/>
<layer/>
</page>
</xournal>

View File

@ -0,0 +1 @@
https://fr.wikipedia.org/w/index.php?title=Luminance&oldid=213474628

View File

@ -0,0 +1,97 @@
<?xml version="1.0" standalone="no"?>
<xournal creator="Xournal++ 1.1.3" fileversion="4">
<title>Xournal++ document - see https://github.com/xournalpp/xournalpp</title>
<page width="596.00000000" height="842.00000000">
<background type="pdf" domain="absolute" filename="/home/benjamin/Desktop/bens_folder/school/ens/asp/aria/internship/work/articles/Luminance &#x2014; Wikip&#xE9;dia/Luminance &#x2014; Wikip&#xE9;dia.pdf" pageno="1"/>
<layer>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">308.31697322 229.73388167 342.58772926 229.73388167</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">403.42482890 230.88641206 513.53174122 230.88641206</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">400.58734988 247.39912049 448.43739914 247.39912049</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">163.55134318 145.15612894 286.36952942 145.15612894</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">46.64690002 160.70087527 276.29500631 160.70087527</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">164.58662049 188.77444937 283.04244490 188.77444937</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">45.85654519 205.53629221 282.32203878 205.53629221</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">49.32102172 220.01395738 281.24889357 220.01395738</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">46.05357273 235.94680660 224.23540018 235.94680660</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">45.79631711 284.24226115 257.72894112 284.24226115</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">245.65477608 235.89348911 288.37779115 235.89348911</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">45.68625206 251.52855235 277.80468378 251.52855235</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">45.88932006 267.85106817 208.08487166 267.85106817</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">280.49795608 283.38015217 285.15003550 284.62667310</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">45.16228290 299.95018825 287.26041830 299.95018825</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">45.89222049 318.60654216 423.37223865 318.60654216</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">152.05528896 344.27647981 545.35013045 344.27647981</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">45.91584009 360.25207657 548.42184190 360.25207657</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">44.71862701 378.30761480 102.07524575 375.89594657</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">65.15560250 345.54106772 120.78217722 343.16569500</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">117.75752067 469.86085360 175.76744312 469.86085360</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">201.17001781 468.21941602 516.47122409 468.21941602</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">46.07772541 486.72542672 546.70449731 486.72542672</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">45.97901904 501.74429397 166.38050784 501.74429397</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">264.92256835 501.56265591 549.71929508 501.56265591</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">48.58177179 517.06741986 438.91659896 517.06741986</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">289.26156357 377.40685329 497.58724555 377.40685329</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">509.44114358 376.44260329 551.43297024 376.44260329</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">48.04375904 392.85257685 339.14096574 392.85257685</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">494.62225704 392.16128836 548.38305388 392.16128836</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">45.59198920 409.14375884 271.47298330 409.14375884</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">495.32207486 409.90337369 551.87149791 409.90337369</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">45.20818078 426.54155270 299.02829505 426.54155270</stroke>
<text font="Sans" size="11.00000000" x="241.78659853" y="445.64231326" color="#00c0ffff" ts="0" fn="">specific to the device maximum luminance or another factor?</text>
</layer>
</page>
<page width="596.00000000" height="842.00000000">
<background type="pdf" pageno="2"/>
<layer/>
</page>
<page width="596.00000000" height="842.00000000">
<background type="pdf" pageno="3"/>
<layer/>
</page>
<page width="596.00000000" height="842.00000000">
<background type="pdf" pageno="4"/>
<layer>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">46.34309764 201.46125318 297.72408148 201.46125318</stroke>
</layer>
</page>
<page width="596.00000000" height="842.00000000">
<background type="pdf" pageno="5"/>
<layer/>
</page>
<page width="596.00000000" height="842.00000000">
<background type="pdf" pageno="6"/>
<layer/>
</page>
<page width="596.00000000" height="842.00000000">
<background type="pdf" pageno="7"/>
<layer/>
</page>
<page width="596.00000000" height="842.00000000">
<background type="pdf" pageno="8"/>
<layer>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">47.79037831 455.17615498 182.30940816 455.17615498</stroke>
</layer>
</page>
<page width="596.00000000" height="842.00000000">
<background type="pdf" pageno="9"/>
<layer/>
</page>
<page width="596.00000000" height="842.00000000">
<background type="pdf" pageno="10"/>
<layer>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">46.98466610 115.30428341 216.56442249 115.30428341</stroke>
</layer>
</page>
<page width="596.00000000" height="842.00000000">
<background type="pdf" pageno="11"/>
<layer/>
</page>
<page width="596.00000000" height="842.00000000">
<background type="pdf" pageno="12"/>
<layer/>
</page>
<page width="596.00000000" height="842.00000000">
<background type="pdf" pageno="13"/>
<layer/>
</page>
</xournal>

View File

@ -0,0 +1 @@
https://fr.wikipedia.org/w/index.php?title=Math%C3%A9matiques_appliqu%C3%A9es&oldid=208906401

View File

@ -0,0 +1,47 @@
<?xml version="1.0" standalone="no"?>
<xournal creator="Xournal++ 1.1.3" fileversion="4">
<title>Xournal++ document - see https://github.com/xournalpp/xournalpp</title>
<page width="596.00000000" height="842.00000000">
<background type="pdf" domain="absolute" filename="/home/benjamin/Desktop/bens_folder/school/ens/asp/aria/internship/work/articles/Math&#xE9;matiques appliqu&#xE9;es &#x2014; Wikip&#xE9;dia/Math&#xE9;matiques appliqu&#xE9;es &#x2014; Wikip&#xE9;dia.pdf" pageno="1"/>
<layer>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">261.95526123 145.93893433 316.49011230 143.54006958</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">48.25604248 161.08773804 120.11657359 161.08773804</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">215.94088745 159.64968872 314.21077539 159.64968872</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">45.71994019 176.54431152 245.41041500 176.54431152</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">270.71002197 175.39291382 315.23260498 177.37307739</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">46.61962891 194.40142822 322.06871752 194.40142822</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">47.11541748 208.36755371 319.90593505 208.36755371</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">45.51547241 223.94680786 325.04748131 223.94680786</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">45.95416260 240.92169189 317.08970910 240.92169189</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">47.50695801 255.55850220 548.67110014 255.55850220</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">45.88986206 270.99343872 555.86540973 270.99343872</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">46.47100830 288.98825073 349.58597494 288.98825073</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">362.44836426 287.66989136 546.20602378 287.66989136</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">47.20300293 304.85968018 427.37793918 304.85968018</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">66.97122192 408.73422241 212.06427870 408.73422241</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">290.42889404 407.32730103 445.09403545 407.32730103</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">47.33685303 424.36248779 268.02313235 424.36248779</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">334.95391846 423.34759521 443.40604614 423.34759521</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">340.33123779 581.54693604 356.97272093 581.54693604</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">89.83901978 599.48757935 371.70467444 599.48757935</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">96.19296265 616.26239014 416.52137222 616.26239014</stroke>
<stroke tool="pen" ts="0" fn="" color="#00c0ffff" width="1.41000000" fill="255">354.21667480 636.82934570 523.03477276 636.82934570</stroke>
<stroke tool="pen" ts="0" fn="" color="#00c0ffff" width="1.41000000" fill="255">519.80822754 654.59472656 86.89152859 654.59472656</stroke>
<stroke tool="pen" ts="0" fn="" color="#00c0ffff" width="1.41000000" fill="255">92.02331543 672.84005737 224.40496371 672.84005737</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">63.78872681 331.44384766 555.22778846 331.44384766</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">44.82833862 349.95639038 546.37436639 349.95639038</stroke>
<stroke tool="pen" ts="0" fn="" color="#000000ff" width="1.41000000" fill="255">129.23358154 368.88317871 550.69882653 368.88317871</stroke>
<stroke tool="pen" ts="0" fn="" color="#000000ff" width="1.41000000" fill="255">42.70935059 389.32327271 208.02395928 389.32327271</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">45.74917603 698.50160217 339.06562037 698.50160217</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">75.06716919 726.64631653 145.12664855 726.64631653</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">325.06909180 726.50299072 436.30307792 726.50299072</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">97.62518311 741.33494568 173.45197892 741.33494568</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">283.01745605 738.10017395 506.30650529 738.10017395</stroke>
<text font="Sans" size="11.00000000" x="464.82763672" y="792.13711548" color="#00c0ffff" ts="0" fn="">?</text>
</layer>
</page>
<page width="596.00000000" height="842.00000000">
<background type="pdf" pageno="2"/>
<layer/>
</page>
</xournal>

View File

@ -0,0 +1 @@
https://fr.wikipedia.org/w/index.php?title=Nikon_Electronic_File&oldid=209775164

View File

@ -0,0 +1,40 @@
<?xml version="1.0" standalone="no"?>
<xournal creator="Xournal++ 1.1.3" fileversion="4">
<title>Xournal++ document - see https://github.com/xournalpp/xournalpp</title>
<page width="596.00000000" height="842.00000000">
<background type="pdf" domain="absolute" filename="/home/benjamin/Desktop/bens_folder/school/ens/asp/aria/internship/work/articles/Nikon Electronic File &#x2014; Wikip&#xE9;dia/Nikon Electronic File &#x2014; Wikip&#xE9;dia.pdf" pageno="1"/>
<layer>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">47.55526456 101.48866512 279.11246359 101.48866512</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">170.54788889 143.22212156 189.54746249 143.22212156</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">366.24957628 144.12380250 397.74670462 144.12380250</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">144.19416948 160.35736336 427.18339402 160.35736336</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">79.99953593 176.19094218 96.02432225 176.19094218</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">364.49368059 202.80873953 428.65741708 202.80873953</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">64.45138474 203.00818829 261.69250506 203.00818829</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">324.57815123 221.83457051 387.11603808 221.83457051</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">445.52723278 222.52151868 503.89473642 222.52151868</stroke>
<stroke tool="pen" ts="0" fn="" color="#000000ff" width="1.41000000" fill="255">59.42289494 243.39299478 308.83852525 243.39299478</stroke>
<stroke tool="pen" ts="0" fn="" color="#00c0ffff" width="1.41000000" fill="255">122.59544183 227.88698811 172.40849554 227.88698811</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">438.01269531 263.12515637 553.40216923 263.12515637</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">45.51733348 281.14424776 52.90766945 280.44569788</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">114.81746957 282.79118814 139.85872554 282.79118814</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">197.15545907 280.54685987 255.05553674 280.54685987</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">312.52431318 281.46268986 336.04181463 282.88813820</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">373.29969170 279.72129633 548.74888148 279.72129633</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">46.15594533 298.46753838 80.74842194 298.46753838</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">424.83349004 296.94630016 462.04104961 296.94630016</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">478.84012017 297.42603144 517.05685450 299.53999165</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">123.94429357 342.13242964 552.38637550 342.13242964</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">45.74238170 356.93778046 72.06804260 358.23283550</stroke>
<text font="Sans" size="11.00000000" x="33.93796810" y="352.88527408" color="#00c0ffff" ts="0" fn="">?</text>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">251.32416024 406.37608047 495.38647884 406.37608047</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">75.72919357 423.57785564 548.73344721 423.57785564</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">45.91423854 438.23148869 183.44415065 438.23148869</stroke>
<stroke tool="pen" ts="0" fn="" color="#000000ff" width="1.41000000" fill="255">292.69706789 381.72130742 112.63571495 415.39962390</stroke>
</layer>
</page>
<page width="596.00000000" height="842.00000000">
<background type="pdf" pageno="2"/>
<layer/>
</page>
</xournal>

View File

@ -10,11 +10,35 @@
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">488.73563404 173.68375920 503.72854185 171.42041419</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">332.33143200 578.02951277 353.10578149 576.88871021</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">415.25359351 577.98946160 415.25359351 577.98946160</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">44.21017615 587.32649691 209.17818622 587.32649691</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">62.44788284 603.46394008 204.76964895 603.46394008</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">283.84008615 603.91730388 315.43224737 603.91730388</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">44.47732177 615.27873706 232.27846272 615.27873706</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">66.28613502 626.56022262 130.61572538 626.56022262</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">247.75663108 626.52223846 315.35384072 626.52223846</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">43.83965727 639.12507329 114.64283611 639.12507329</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">66.49362673 656.55690955 66.49362673 676.77922943 116.46459956 676.77922943 116.46459956 656.55690955 66.49362673 656.55690955</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">60.46049292 695.25174560 313.53818981 695.25174560</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">143.55441284 706.89054068 220.52927559 706.89054068</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">61.00786967 706.76182519 107.25597545 706.76182519</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">248.48523793 706.99488085 304.54650945 706.99488085</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">42.40710743 719.35642581 112.04405223 719.35642581</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">166.64738792 738.32502719 318.96865212 738.32502719</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">43.06540052 751.37102780 315.00035160 751.37102780</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">42.78336166 763.74948906 112.14903048 763.74948906</stroke>
<stroke tool="pen" ts="0" fn="" color="#00c0ffff" width="1.41000000" fill="255">175.56923877 767.77047004 247.20260005 767.77047004</stroke>
</layer>
</page>
<page width="596.00000000" height="842.00000000">
<background type="pdf" pageno="2"/>
<layer/>
<layer>
<stroke tool="pen" ts="0" fn="" color="#00c0ffff" width="1.41000000">59.67272207 34.90525700 59.67272207 65.40249077 117.96498256 65.40249077 117.96498256 34.90525700 59.67272207 34.90525700</stroke>
<stroke tool="pen" ts="0" fn="" color="#00c0ffff" width="1.41000000" fill="255">97.21314968 81.82839273 153.84001643 81.82839273</stroke>
<stroke tool="pen" ts="0" fn="" color="#000000ff" width="1.41000000" fill="255">180.85267204 82.46277130 237.58066206 82.46277130</stroke>
<stroke tool="pen" ts="0" fn="" color="#000000ff" width="1.41000000">61.65489240 102.57408441 61.65489240 120.32469479 117.74808525 120.32469479 117.74808525 102.57408441 61.65489240 102.57408441</stroke>
<stroke tool="pen" ts="0" fn="" color="#000000ff" width="1.41000000">87.46690470 137.70156168 184.96999520 137.70156168</stroke>
<stroke tool="pen" ts="0" fn="" color="#000000ff" width="1.41000000">194.36878048 136.94480693 280.90555503 136.94480693</stroke>
</layer>
</page>
<page width="596.00000000" height="842.00000000">
<background type="pdf" pageno="3"/>
@ -42,7 +66,10 @@
</page>
<page width="596.00000000" height="842.00000000">
<background type="pdf" pageno="9"/>
<layer/>
<layer>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">57.22865585 190.21949453 370.93056821 190.21949453</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">59.15928360 199.99833540 250.42372678 199.99833540</stroke>
</layer>
</page>
<page width="596.00000000" height="842.00000000">
<background type="pdf" pageno="10"/>
@ -82,7 +109,25 @@
</page>
<page width="596.00000000" height="842.00000000">
<background type="pdf" pageno="19"/>
<layer/>
<layer>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">43.75012611 186.68397005 179.92884605 186.68397005</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">44.47964755 203.12235178 259.00853688 203.12235178</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">345.83175281 202.17143918 420.43887546 202.17143918</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">42.89462507 212.65142772 377.33950818 212.65142772</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">427.70521936 199.40869040 550.54281601 199.40869040</stroke>
<stroke tool="pen" ts="0" fn="" color="#00c0ffff" width="1.41000000" fill="255">389.24167097 218.84374697 555.62601173 218.84374697</stroke>
<stroke tool="pen" ts="0" fn="" color="#00c0ffff" width="1.41000000" fill="255">44.96596155 231.00921379 555.76160279 231.00921379</stroke>
<stroke tool="pen" ts="0" fn="" color="#00c0ffff" width="1.41000000" fill="255">44.29056467 241.06783276 119.64378640 241.06783276</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">70.86857567 300.02716317 312.14594133 300.02716317</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">70.40367442 258.51574102 147.32264062 258.51574102</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">202.36102648 258.81501505 292.87501528 258.81501505</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">349.02126848 259.08523433 509.83218168 259.08523433</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">86.31299232 267.53522384 360.89189640 267.53522384</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">72.95274971 285.30301181 383.90765475 285.30301181</stroke>
<stroke tool="pen" ts="0" fn="" color="#00c0ffff" width="1.41000000" fill="255">57.23059788 318.82647049 133.67766088 318.82647049</stroke>
<stroke tool="pen" ts="0" fn="" color="#00c0ffff" width="1.41000000" fill="255">165.49619564 319.11457156 523.70654206 319.11457156</stroke>
<stroke tool="pen" ts="0" fn="" color="#00c0ffff" width="1.41000000" fill="255">56.33988814 330.37593621 284.63894658 330.37593621</stroke>
</layer>
</page>
<page width="596.00000000" height="842.00000000">
<background type="pdf" pageno="20"/>

View File

@ -0,0 +1 @@
https://en.wikipedia.org/w/index.php?title=Pixel_binning&oldid=1171449668

View File

@ -0,0 +1,43 @@
<?xml version="1.0" standalone="no"?>
<xournal creator="Xournal++ 1.1.3" fileversion="4">
<title>Xournal++ document - see https://github.com/xournalpp/xournalpp</title>
<page width="596.00000000" height="842.00000000">
<background type="pdf" domain="absolute" filename="/home/benjamin/Desktop/bens_folder/school/ens/asp/aria/internship/work/articles/Pixel binning - Wikipedia/Pixel binning - Wikipedia.pdf" pageno="1"/>
<layer>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">51.09253618 85.47308712 189.43789577 85.47308712</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">185.37727430 116.78082060 227.59026141 113.00331305</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">318.28045576 117.82296952 439.06144749 117.82296952</stroke>
<text font="Sans" size="11.00000000" x="325.35282998" y="136.11833887" color="#00c0ffff" ts="0" fn="">?</text>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">46.10718828 133.63524794 227.06402141 133.63524794</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">206.07004947 159.31200677 300.20272855 159.31200677</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">46.61881055 176.15069383 112.48246295 176.15069383</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">123.60199227 177.70812209 300.59033969 177.70812209</stroke>
<text font="Sans" size="11.00000000" x="310.38527628" y="173.17853265" color="#00c0ffff" ts="0" fn="">how?</text>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">133.91466377 205.42622257 214.68155123 205.42622257</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">366.48676505 204.27801876 546.91569472 204.27801876</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">46.98499856 218.76547661 238.26228539 218.76547661</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">250.65671260 219.56883867 310.98287642 219.56883867</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">334.19779169 219.36784912 388.63857930 219.36784912</stroke>
<stroke tool="pen" ts="0" fn="" color="#00c0ffff" width="1.41000000" fill="255">415.03521054 225.29837066 550.18388573 225.29837066</stroke>
<stroke tool="pen" ts="0" fn="" color="#00c0ffff" width="1.41000000" fill="255">44.84802292 242.09915723 131.28956055 242.09915723</stroke>
<text font="Sans" size="11.00000000" x="81.53244466" y="238.19677166" color="#00c0ffff" ts="0" fn="">?</text>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">210.00142889 253.03343809 468.44806990 253.03343809</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">45.18076999 312.68886047 121.93878797 312.68886047</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">272.83801646 313.62967774 367.22995482 313.62967774</stroke>
<stroke tool="pen" ts="0" fn="" color="#00c0ffff" width="1.41000000" fill="255">376.20437817 320.27099976 555.62383323 320.27099976</stroke>
<stroke tool="pen" ts="0" fn="" color="#00c0ffff" width="1.41000000" fill="255">44.42413582 335.24359768 190.92308636 335.24359768</stroke>
<text font="Sans" size="11.00000000" x="165.42572549" y="327.75054734" color="#00c0ffff" ts="0" fn="">?</text>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">225.53760463 327.70213321 395.36129015 327.70213321</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">448.62513610 326.96838150 549.01235282 326.96838150</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">48.50444607 343.99932242 99.90004806 343.99932242</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">156.06577104 343.51310472 191.58998937 343.51310472</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">107.39688314 345.34324228 149.86101023 345.34324228</stroke>
<stroke tool="pen" ts="0" fn="" color="#000000ff" width="1.41000000" fill="255">153.91174821 241.93356899 549.04126003 241.93356899</stroke>
<stroke tool="pen" ts="0" fn="" color="#000000ff" width="1.41000000" fill="255">44.90642132 259.50770446 91.57263823 259.50770446</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">49.68398142 268.29369457 270.70008537 268.29369457</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">324.27185196 268.09401193 551.74887802 268.09401193</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">45.80610520 283.44210676 173.27140898 283.44210676</stroke>
<stroke tool="highlighter" color="#ff00007f" width="8.50000000" fill="128">196.87098296 284.42616681 526.83168150 284.42616681</stroke>
</layer>
</page>
</xournal>

View File

@ -37,6 +37,25 @@
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">316.13422400 430.57043314 393.11951916 430.57043314</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">420.94202175 431.07159669 534.11452934 431.07159669</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">337.99092744 447.35308304 510.54951345 447.35308304</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">306.63623047 728.28237915 350.03083306 728.28237915</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">381.07836914 728.71041870 407.72382179 728.71041870</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">307.06378174 747.42480469 366.62890144 747.42480469</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">380.47882080 747.75073242 451.76592575 747.75073242</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">44.92999268 442.11621094 99.45452881 444.75457764</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">166.40173340 441.63293457 209.60215863 441.63293457</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">111.55816650 455.56994629 140.03867361 455.56994629</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">162.79190063 456.50994873 258.75246550 456.50994873</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">141.34954834 470.48828125 158.44206435 470.48828125</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">183.72195435 470.69665527 238.66346257 470.69665527</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">43.21038818 511.46459961 291.42241692 511.46459961</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">44.54833984 524.96588135 187.87508430 524.96588135</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">45.28207397 593.31823730 121.66880741 593.31823730</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">157.53948975 606.96588135 287.67628623 606.96588135</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">44.41580200 621.82525635 232.91965185 621.82525635</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">86.49923706 347.41625977 290.67270522 347.41625977</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">46.42218018 362.49600220 286.79351001 362.49600220</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">45.18212891 379.00354004 180.94836265 379.00354004</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">75.91943359 399.78482056 75.91943359 419.53167725 105.45605469 419.53167725 105.45605469 399.78482056 75.91943359 399.78482056</stroke>
</layer>
</page>
<page width="596.00000000" height="842.00000000">
@ -46,11 +65,36 @@
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">382.04518124 231.98852998 382.04518124 231.98852998</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">382.71455027 300.04268334 382.71455027 300.04268334</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">306.97520863 300.38754802 352.81472769 300.38754802</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">306.03222656 45.51226807 327.16076660 46.39172363</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">380.32781982 39.87506104 380.32781982 58.42578125 405.81292725 58.42578125 405.81292725 39.87506104 380.32781982 39.87506104</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">43.26376343 340.01507568 234.26543013 340.01507568</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">45.82058716 296.24285889 126.33161960 296.24285889</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">60.73214722 371.94482422 191.64322052 371.94482422</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">257.65490723 370.58053589 291.19185221 370.58053589</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">43.02877808 382.20391846 290.30313252 382.20391846</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">43.79855347 398.94131470 169.32798916 398.94131470</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">121.28720093 419.66113281 121.28720093 445.06115723 215.97497559 445.06115723 215.97497559 419.66113281 121.28720093 419.66113281</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">62.49523926 491.76464844 236.83890554 491.76464844</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">64.03182983 524.47473145 64.03182983 524.47473145</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">86.50683594 523.63189697 166.84224691 523.63189697</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">66.45343018 569.23608398 288.17464388 569.23608398</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">44.79705811 582.10699463 199.80765813 582.10699463</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">74.24508667 608.27276611 172.19796899 608.27276611</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">45.98184204 779.23443604 114.94424698 779.23443604</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">307.51184082 74.75186157 323.11671746 74.75186157</stroke>
</layer>
</page>
<page width="596.00000000" height="842.00000000">
<background type="pdf" pageno="3"/>
<layer/>
<layer>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">140.53445435 617.02801514 227.89618503 617.02801514</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">278.39398193 618.74630737 377.28949656 618.74630737</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">49.58020020 630.05511475 169.82461183 630.05511475</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">266.06384277 632.76980591 373.61953150 632.76980591</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">47.35577393 644.98269653 200.47782371 644.98269653</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">250.26812744 644.34216309 380.65710247 644.34216309</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">110.56472778 699.18240356 135.56025289 699.18240356</stroke>
</layer>
</page>
<page width="596.00000000" height="842.00000000">
<background type="pdf" pageno="4"/>
@ -70,11 +114,26 @@
</page>
<page width="596.00000000" height="842.00000000">
<background type="pdf" pageno="8"/>
<layer/>
<layer>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">84.08988259 757.74443193 239.49238184 757.74443193</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">259.73749334 754.02504661 321.90120889 754.02504661</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">339.24910112 754.85927235 541.91642347 754.85927235</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">64.70897328 769.66974432 142.59218235 769.66974432</stroke>
<stroke tool="pen" ts="0" fn="" color="#000000ff" width="1.41000000" fill="255">154.97061990 775.62627619 284.50130927 775.62627619</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">293.69318182 769.19434981 543.84969993 769.19434981</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">62.82126687 784.42601984 123.10668082 784.42601984</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">147.09949840 785.78477339 286.16144797 785.78477339</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">493.77890847 782.47852672 518.16128817 783.67778431</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">66.17806175 800.67937678 441.73055814 800.67937678</stroke>
<stroke tool="pen" ts="0" fn="" color="#00c0ffff" width="1.41000000" fill="255">452.69398082 806.79515492 532.95531889 806.79515492</stroke>
</layer>
</page>
<page width="596.00000000" height="842.00000000">
<background type="pdf" pageno="9"/>
<layer/>
<layer>
<stroke tool="pen" ts="0" fn="" color="#00c0ffff" width="1.41000000" fill="255">65.60480291 50.46844482 418.14186508 50.46844482</stroke>
<stroke tool="pen" ts="0" fn="" color="#00c0ffff" width="1.41000000" fill="255">81.62250866 75.63201904 279.84598850 75.63201904</stroke>
</layer>
</page>
<page width="596.00000000" height="842.00000000">
<background type="pdf" pageno="10"/>

View File

@ -0,0 +1 @@
https://web.archive.org/web/20240405093114/https://bammey.com/research/polar/

View File

@ -0,0 +1,68 @@
<?xml version="1.0" standalone="no"?>
<xournal creator="Xournal++ 1.1.3" fileversion="4">
<title>Xournal++ document - see https://github.com/xournalpp/xournalpp</title>
<page width="596.00000000" height="842.00000000">
<background type="pdf" domain="absolute" filename="/home/benjamin/Desktop/bens_folder/school/ens/asp/aria/internship/work/articles/Positional Learning Quentin Bammey/Positional Learning Quentin Bammey.pdf" pageno="1"/>
<layer>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">145.28812179 232.85203924 190.65558331 232.85203924</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">373.42255741 232.13011019 405.83713891 232.13011019</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">54.17760247 379.87537539 100.95766579 379.87537539</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">310.44709403 379.61179459 349.98117326 379.61179459</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">83.57968051 411.56928942 161.38534344 411.56928942</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">175.78703703 412.60446463 260.42027211 412.60446463</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">307.04718597 413.08319255 442.32202154 413.08319255</stroke>
<text font="Sans" size="11.00000000" x="333.74119395" y="398.57997951" color="#00c0ffff" ts="0" fn="">not identical?</text>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">459.97445345 412.75459768 502.48270820 412.75459768</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">53.05489228 424.70114629 93.67506940 424.70114629</stroke>
<stroke tool="pen" ts="0" fn="" color="#00c0ffff" width="1.41000000" fill="255">165.34484124 429.01701184 450.69514457 429.01701184</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">55.81353726 452.92426399 486.52827774 452.92426399</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">90.31110964 466.08151254 217.28838617 466.08151254</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">291.69268543 489.43960329 511.21937121 489.43960329</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">100.06806168 488.76981245 273.31862473 488.76981245</stroke>
<stroke tool="pen" ts="0" fn="" color="#00c0ffff" width="1.41000000" fill="255">60.61756733 508.43623715 160.25728046 508.43623715</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">351.28044012 502.86479091 531.84965537 502.86479091</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">54.98792867 516.55238450 81.06346923 518.32963156</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">206.68748000 537.79333970 294.65267874 537.79333970</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">347.13651793 538.08649991 536.30000376 538.08649991</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">55.46731033 552.20719218 103.66499002 552.20719218</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">130.62454213 552.29462294 175.09228590 552.29462294</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">209.61008133 552.13018338 489.07510070 552.13018338</stroke>
<text font="Sans" size="11.00000000" x="132.46727699" y="569.96343599" color="#ff00ffff" ts="0" fn="">to do</text>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">56.85522146 566.42054514 163.68781229 566.42054514</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">262.03579052 566.40682605 319.45270877 566.40682605</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">80.42311569 602.49289436 144.40783466 602.49289436</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">210.56829512 602.08147335 346.63466042 602.08147335</stroke>
<stroke tool="pen" ts="0" fn="" color="#00c0ffff" width="1.41000000" fill="255">357.64962094 610.26331694 527.17602452 610.26331694</stroke>
<stroke tool="pen" ts="0" fn="" color="#00c0ffff" width="1.41000000" fill="255">55.48288642 622.39263828 277.15180391 622.39263828</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">282.36977006 616.80216723 327.87157725 616.80216723</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">340.46957230 617.57170568 383.63243449 615.87548460</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">402.19098607 616.06262508 426.39043100 616.06262508</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">500.02721382 617.58144547 511.22539951 616.74996270</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">56.56901554 631.54465248 82.60996398 631.54465248</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">122.14351254 631.01343580 159.53641679 631.01343580</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">187.91647206 631.10603963 533.58299899 631.10603963</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">54.55645013 647.21838708 155.15229465 647.21838708</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">53.91351952 665.40815293 184.63373123 665.40815293</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">249.72908745 667.14973795 333.71201222 667.14973795</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">418.89711985 667.47556626 525.39096941 667.47556626</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">55.80878105 681.53800926 511.89742566 681.53800926</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">114.06130288 695.16360167 300.02448611 695.16360167</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">447.43221413 717.51248682 522.33392990 717.51248682</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">55.25313909 730.70731128 225.05883444 730.70731128</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">395.58645849 730.18602387 524.35143064 730.18602387</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">54.73862596 746.10924120 91.08992497 746.10924120</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">83.75024059 768.01744806 141.26491429 768.01744806</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">157.45151535 767.49981782 330.31724684 767.49981782</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">422.74119283 766.49832448 511.79091112 766.49832448</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">55.36305285 781.72687091 172.95126561 781.72687091</stroke>
<stroke tool="pen" ts="0" fn="" color="#00c0ffff" width="1.41000000" fill="255">261.07837259 785.58204801 333.00309050 785.58204801</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">340.53699289 781.33580114 512.11123602 781.33580114</stroke>
</layer>
</page>
<page width="596.00000000" height="842.00000000">
<background type="pdf" pageno="2"/>
<layer>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">55.22613674 53.44725059 377.36542545 53.44725059</stroke>
</layer>
</page>
</xournal>

View File

@ -0,0 +1 @@
https://en.wikipedia.org/w/index.php?title=Random_variable&oldid=1189421773

View File

@ -0,0 +1,78 @@
<?xml version="1.0" standalone="no"?>
<xournal creator="Xournal++ 1.1.3" fileversion="4">
<title>Xournal++ document - see https://github.com/xournalpp/xournalpp</title>
<page width="596.00000000" height="842.00000000">
<background type="pdf" domain="absolute" filename="/home/benjamin/Desktop/bens_folder/school/ens/asp/aria/internship/work/articles/Random variable - Wikipedia/Random variable - Wikipedia.pdf" pageno="1"/>
<layer>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">156.74756721 117.81094363 524.12973811 117.81094363</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">116.22969286 133.58385414 482.16790315 133.58385414</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">138.12774039 147.14631526 550.22704226 147.14631526</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">46.48995346 165.16665853 79.86923206 165.16665853</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">101.21646597 164.66095177 342.03968542 164.66095177</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">353.85909106 165.62561448 550.41254886 165.62561448</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">45.74588400 181.58667469 206.45620951 181.58667469</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">218.80727491 180.65622102 302.96257597 180.65622102</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">312.92646653 180.65236906 402.37593635 180.65236906</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">417.85997811 180.82914632 521.47860933 180.82914632</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">535.87496075 180.16853590 549.92610464 180.16853590</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">45.36510212 196.32240026 462.24262761 196.32240026</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">476.27172320 197.35474733 551.07742966 197.35474733</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">47.61819818 213.76045623 85.08686006 213.76045623</stroke>
<text font="Sans" size="11.00000000" x="552.86063001" y="296.57635174" color="#00c0ffff" ts="0" fn="">?</text>
<stroke tool="pen" ts="0" fn="" color="#00c0ffff" width="1.41000000">410.25508048 259.40142266 412.95342022 262.32893178</stroke>
<stroke tool="pen" ts="0" fn="" color="#00c0ffff" width="1.41000000">412.95342022 262.32893178 419.04843972 251.77204832</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">501.20857121 373.30116623 533.92212951 373.30116623</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">388.00605664 386.87718802 528.29333358 386.87718802</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">387.52979210 401.45513897 510.22110362 401.45513897</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">389.34620677 417.24878293 419.19855208 417.24878293</stroke>
</layer>
</page>
<page width="596.00000000" height="842.00000000">
<background type="pdf" pageno="2"/>
<layer/>
</page>
<page width="596.00000000" height="842.00000000">
<background type="pdf" pageno="3"/>
<layer/>
</page>
<page width="596.00000000" height="842.00000000">
<background type="pdf" pageno="4"/>
<layer/>
</page>
<page width="596.00000000" height="842.00000000">
<background type="pdf" pageno="5"/>
<layer/>
</page>
<page width="596.00000000" height="842.00000000">
<background type="pdf" pageno="6"/>
<layer/>
</page>
<page width="596.00000000" height="842.00000000">
<background type="pdf" pageno="7"/>
<layer/>
</page>
<page width="596.00000000" height="842.00000000">
<background type="pdf" pageno="8"/>
<layer/>
</page>
<page width="596.00000000" height="842.00000000">
<background type="pdf" pageno="9"/>
<layer/>
</page>
<page width="596.00000000" height="842.00000000">
<background type="pdf" pageno="10"/>
<layer/>
</page>
<page width="596.00000000" height="842.00000000">
<background type="pdf" pageno="11"/>
<layer/>
</page>
<page width="596.00000000" height="842.00000000">
<background type="pdf" pageno="12"/>
<layer/>
</page>
<page width="596.00000000" height="842.00000000">
<background type="pdf" pageno="13"/>
<layer/>
</page>
</xournal>

View File

@ -0,0 +1 @@
https://en.wikipedia.org/w/index.php?title=Raster_graphics&oldid=1215085649

View File

@ -0,0 +1 @@
https://web.archive.org/web/20240407160937/https://www.bibmath.net/ressources/index.php?action=affiche&quoi=mathsup/cours/va.html

View File

@ -0,0 +1,55 @@
<?xml version="1.0" standalone="no"?>
<xournal creator="Xournal++ 1.1.3" fileversion="4">
<title>Xournal++ document - see https://github.com/xournalpp/xournalpp</title>
<page width="596.00000000" height="842.00000000">
<background type="pdf" domain="absolute" filename="/home/benjamin/Desktop/bens_folder/school/ens/asp/aria/internship/work/articles/R&#xE9;sum&#xE9; de cours Variables al&#xE9;atoires finies/R&#xE9;sum&#xE9; de cours Variables al&#xE9;atoires finies.pdf" pageno="1"/>
<layer/>
</page>
<page width="596.00000000" height="842.00000000">
<background type="pdf" pageno="2"/>
<layer/>
</page>
<page width="596.00000000" height="842.00000000">
<background type="pdf" pageno="3"/>
<layer/>
</page>
<page width="596.00000000" height="842.00000000">
<background type="pdf" pageno="4"/>
<layer>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">73.45977783 694.06259155 138.66003195 694.06259155</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">252.41070557 716.90484619 252.41070557 744.94366455 375.45617676 744.94366455 375.45617676 716.90484619 252.41070557 716.90484619</stroke>
</layer>
</page>
<page width="596.00000000" height="842.00000000">
<background type="pdf" pageno="5"/>
<layer>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">244.93057251 465.59494019 244.93057251 482.55279541 379.19940186 482.55279541 379.19940186 465.59494019 244.93057251 465.59494019</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">168.24481201 346.05801392 219.81264673 346.05801392</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">245.71145630 365.54067993 245.71145630 391.70416260 378.50512695 391.70416260 378.50512695 365.54067993 245.71145630 365.54067993</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">140.98248291 675.38015747 210.84814152 675.38015747</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">221.55715942 699.43289185 399.74188348 699.43289185</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">173.11038208 785.40142822 342.20681841 785.40142822</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">205.33947754 756.60037231 419.40646690 756.60037231</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">74.72717285 212.12194824 396.46608681 212.12194824</stroke>
<text font="Sans" size="11.00000000" x="256.98651123" y="703.87686157" color="#00c0ffff" ts="0" fn="">V(X+Y) = E((X+Y)&#xB2;) - (E(X+Y))&#xB2;
= E(X&#xB2;+2XY+Y&#xB2;) - (E(X) + E(Y))&#xB2;
= E(X&#xB2;) + 2E(XY) + E(Y&#xB2;) - E(X)&#xB2; -2E(X)E(Y) - E(Y)&#xB2;</text>
<text font="Sans" size="11.00000000" x="89.76882935" y="765.30111694" color="#00c0ffff" ts="0" fn="">V(X) + V(Y) = E(X&#xB2;) - E(X)&#xB2; + E(Y&#xB2;) - E(Y)&#xB2;</text>
<stroke tool="pen" ts="0" fn="" color="#00c0ffff" width="1.41000000">261.57043457 744.25915527 264.54760742 747.53289795</stroke>
<stroke tool="pen" ts="0" fn="" color="#00c0ffff" width="1.41000000">264.54760742 747.53289795 271.78380799 734.99943092</stroke>
</layer>
</page>
<page width="596.00000000" height="842.00000000">
<background type="pdf" pageno="6"/>
<layer>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">243.37326050 42.77722168 379.69421563 42.77722168</stroke>
<stroke tool="pen" ts="0" fn="" color="#00c0ffff" width="1.41000000">393.48840332 44.41912842 398.97363281 49.07730103</stroke>
<stroke tool="pen" ts="0" fn="" color="#00c0ffff" width="1.41000000">398.97363281 49.07730103 410.32211389 29.42115521</stroke>
<text font="Sans" size="11.00000000" x="417.73889160" y="39.05914307" color="#00c0ffff" ts="0" fn="">because E(XY) = E(X)E(Y)</text>
</layer>
</page>
<page width="596.00000000" height="842.00000000">
<background type="pdf" pageno="7"/>
<layer/>
</page>
</xournal>

View File

@ -0,0 +1 @@
https://en.wikipedia.org/w/index.php?title=Self-supervised_learning&oldid=1216667706

View File

@ -0,0 +1,47 @@
<?xml version="1.0" standalone="no"?>
<xournal creator="Xournal++ 1.1.3" fileversion="4">
<title>Xournal++ document - see https://github.com/xournalpp/xournalpp</title>
<page width="596.00000000" height="842.00000000">
<background type="pdf" domain="absolute" filename="/home/benjamin/Desktop/bens_folder/school/ens/asp/aria/internship/work/articles/Self-supervised learning - Wikipedia/Self-supervised learning - Wikipedia.pdf" pageno="1"/>
<layer>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">48.26525879 753.08764648 323.21387725 753.08764648</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">78.75981607 773.14675759 173.15055145 773.14675759</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">213.43907013 774.81671798 274.57365701 774.81671798</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">326.77796190 773.51254435 548.34453261 773.51254435</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">43.95785428 790.12898732 86.17248208 790.12898732</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">97.53255178 787.80589114 181.26390539 787.80589114</stroke>
</layer>
</page>
<page width="596.00000000" height="842.00000000">
<background type="pdf" pageno="2"/>
<layer>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">389.80783510 43.00614607 478.83082304 43.00614607</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">97.04702192 75.62553927 545.53615951 75.62553927</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">46.02760412 93.68637394 234.44317499 93.68637394</stroke>
<text font="Sans" size="11.00000000" x="43.10288060" y="101.97065929" color="#00c0ffff" ts="0" fn="">pair because one positive and one negative provided at the same time?</text>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">46.03979492 130.97671509 164.08238870 130.97671509</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">261.23059082 155.56072998 292.90285683 155.56072998</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">334.87695312 156.61801147 450.15064045 156.61801147</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">463.05383301 152.89419556 550.75115417 152.89419556</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">85.58880615 171.21356201 527.89845616 171.21356201</stroke>
<stroke tool="pen" ts="0" fn="" color="#00c0ffff" width="1.41000000" fill="255">64.67681885 191.92605591 547.84639168 191.92605591</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">42.98168945 202.92239380 262.76863699 202.92239380</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">270.80383301 202.43750000 550.21725213 202.43750000</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">46.19338989 219.61102295 91.98720846 219.61102295</stroke>
<text font="Sans" size="11.00000000" x="317.23645020" y="208.96667480" color="#00c0ffff" ts="0" fn="">?</text>
<text font="Sans" size="11.00000000" x="52.90310669" y="223.52456665" color="#00c0ffff" ts="0" fn="">?</text>
</layer>
</page>
<page width="596.00000000" height="842.00000000">
<background type="pdf" pageno="3"/>
<layer/>
</page>
<page width="596.00000000" height="842.00000000">
<background type="pdf" pageno="4"/>
<layer/>
</page>
<page width="596.00000000" height="842.00000000">
<background type="pdf" pageno="5"/>
<layer/>
</page>
</xournal>

View File

@ -0,0 +1 @@
https://en.wikipedia.org/w/index.php?title=Shot_noise&oldid=1210973018

View File

@ -0,0 +1,111 @@
<?xml version="1.0" standalone="no"?>
<xournal creator="Xournal++ 1.1.3" fileversion="4">
<title>Xournal++ document - see https://github.com/xournalpp/xournalpp</title>
<page width="596.00000000" height="842.00000000">
<background type="pdf" domain="absolute" filename="/home/benjamin/Desktop/bens_folder/school/ens/asp/aria/internship/work/articles/Shot noise - Wikipedia/Shot noise - Wikipedia.pdf" pageno="1"/>
<layer>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">46.11154175 86.32046509 150.35152358 86.32046509</stroke>
<stroke tool="highlighter" color="#ff00007f" width="8.50000000" fill="128">127.45324707 116.81433105 200.04861869 116.81433105</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">78.01306400 132.47647418 254.63864121 132.47647418</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">169.41341684 160.67209108 303.27056261 160.67209108</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">47.40466685 177.72969763 162.33560428 177.72969763</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">235.26941037 177.45813474 302.79955883 177.45813474</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">47.64915140 193.41002363 303.37602767 193.41002363</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">260.11489192 207.76653791 44.85486037 207.76653791</stroke>
<text font="Sans" size="11.00000000" x="327.01944284" y="309.08399263" color="#00c0ffff" ts="0" fn="">so pixel or black?</text>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">328.65629476 277.60449072 502.30991623 277.60449072</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">519.69371999 291.55182641 330.19208155 291.55182641</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">326.95781155 305.28418629 524.57140525 305.28418629</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">67.09423681 269.80212503 168.61949049 269.80212503</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">215.60499276 270.06481466 307.72054223 270.06481466</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">67.99859807 285.73181932 106.17849107 285.73181932</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">211.27064832 284.39049036 281.11851124 284.39049036</stroke>
<stroke tool="pen" ts="0" fn="" color="#00c0ffff" width="1.41000000" fill="255">189.00535807 306.61017621 301.13379781 306.61017621</stroke>
<stroke tool="pen" ts="0" fn="" color="#00c0ffff" width="1.41000000" fill="255">47.56651777 322.75420432 199.59521732 322.75420432</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">289.46654265 364.52157976 392.58953849 364.52157976</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">424.26032361 365.22355284 547.10319361 365.22355284</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">47.01925345 381.43359155 548.32815761 381.43359155</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">45.66284913 397.20432388 202.52479214 397.20432388</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">44.36838564 424.34332408 169.17738859 424.34332408</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">282.64330743 426.96873001 546.79134851 426.96873001</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">48.50904320 441.01837181 80.50800279 441.01837181</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">207.55202066 439.18481794 246.98777059 441.61400340</stroke>
<stroke tool="pen" ts="0" fn="" color="#00c0ffff" width="1.41000000" fill="255">301.21051378 449.25105599 323.03490551 449.25105599</stroke>
<stroke tool="pen" ts="0" fn="" color="#00c0ffff" width="1.41000000" fill="255">434.06341346 448.50774316 476.11050162 448.50774316</stroke>
<stroke tool="pen" ts="0" fn="" color="#00c0ffff" width="1.41000000" fill="255">425.87754889 512.42902313 552.42238033 512.42902313</stroke>
<stroke tool="pen" ts="0" fn="" color="#00c0ffff" width="1.41000000" fill="255">44.67524665 529.10365815 550.78712902 529.10365815</stroke>
<stroke tool="pen" ts="0" fn="" color="#00c0ffff" width="1.41000000" fill="255">44.76212201 544.86315560 511.52154545 544.86315560</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">526.29441305 538.25024176 552.02883643 538.25024176</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">44.88893849 555.01991461 174.03463657 555.01991461</stroke>
<stroke tool="pen" ts="0" fn="" color="#000000ff" width="1.41000000" fill="255">290.63859190 588.55877883 314.74527387 588.55877883</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">46.50521225 625.64681904 444.64200883 625.64681904</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">303.56511346 640.27596237 549.47878566 640.27596237</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">537.92131225 656.01232516 46.38337531 656.01232516</stroke>
<stroke tool="pen" ts="0" fn="" color="#00c0ffff" width="1.41000000" fill="255">53.45846243 679.71771951 492.32045636 679.71771951</stroke>
<text font="Sans" size="11.00000000" x="362.81672248" y="683.55551806" color="#00c0ffff" ts="0" fn="">uniquement</text>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">47.10556707 716.64930841 200.39634201 716.64930841</stroke>
<stroke tool="pen" ts="0" fn="" color="#00c0ffff" width="1.41000000" fill="255">211.03226270 723.63411941 410.12069510 723.63411941</stroke>
<stroke tool="pen" ts="0" fn="" color="#ff00ffff" width="1.41000000" fill="255">420.20141693 724.59194949 448.96595043 724.59194949</stroke>
<stroke tool="pen" ts="0" fn="" color="#000000ff" width="1.41000000" fill="255">453.45856103 723.28033562 552.49284040 723.28033562</stroke>
<stroke tool="pen" ts="0" fn="" color="#000000ff" width="1.41000000" fill="255">45.32520687 741.83387670 552.40812386 741.83387670</stroke>
<stroke tool="pen" ts="0" fn="" color="#000000ff" width="1.41000000" fill="255">45.14761566 757.00280973 152.41913671 757.00280973</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">166.53777136 749.27954670 551.05563429 749.27954670</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">45.46027753 765.43685030 175.30696655 765.43685030</stroke>
<stroke tool="pen" ts="0" fn="" color="#00c0ffff" width="1.41000000" fill="255">185.83120895 771.31310054 420.29842273 771.31310054</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">450.78131420 764.48388103 552.05132785 764.48388103</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">46.86073859 782.32056856 549.40004325 782.32056856</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">46.17630567 799.83536558 326.61443210 799.83536558</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">430.34159877 799.99744579 549.45598233 799.99744579</stroke>
<text font="Sans" size="11.00000000" x="173.37040718" y="82.43216394" color="#00c0ffff" ts="0" fn="">example of generating Poisson noise?</text>
</layer>
</page>
<page width="596.00000000" height="842.00000000">
<background type="pdf" pageno="2"/>
<layer>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">46.94473645 83.82312021 159.02826360 83.82312021</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">47.74493440 106.39993738 358.84150350 106.39993738</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">46.24946990 123.26490028 95.03541660 123.26490028</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">46.03968734 155.13559251 358.58354595 155.13559251</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">45.89209782 171.99810209 136.50406601 171.99810209</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">74.95227243 225.57011697 74.95227243 250.76211403 174.99590959 250.76211403 174.99590959 225.57011697 74.95227243 225.57011697</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">197.37577259 169.44888693 360.89557240 169.44888693</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">90.40439299 187.31985228 339.71317253 187.31985228</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">45.29636306 203.96312138 139.23525650 203.96312138</stroke>
<text font="Sans" size="11.00000000" x="234.92328463" y="307.76575248" color="#00c0ffff" ts="0" fn="">?</text>
<stroke tool="pen" ts="0" fn="" color="#000000ff" width="1.41000000" fill="255">43.17994265 282.56787329 364.59659633 282.56787329</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">271.53114875 307.49055445 544.33799740 307.49055445</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">44.52646486 323.36324897 352.40420412 323.36324897</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">538.36492915 324.74195106 549.51146455 324.74195106</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">45.77901541 340.83512419 195.69395184 340.83512419</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">412.31054798 212.41133165 497.78366914 212.41133165</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">387.33932759 225.38077500 427.05427198 225.38077500</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">446.25494518 239.20996112 525.06844193 239.20996112</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">390.43487847 254.31210398 439.48051735 254.31210398</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">385.76075943 268.18013066 502.37680488 268.18013066</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">521.55384777 87.17784122 521.55384777 106.33948689 539.06360056 106.33948689 539.06360056 87.17784122 521.55384777 87.17784122</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">44.55310756 45.16262224 371.62378483 45.16262224</stroke>
<stroke tool="pen" ts="0" fn="" color="#00c0ffff" width="1.41000000" fill="255">388.15745548 46.29871990 395.75530066 52.90615388</stroke>
<stroke tool="pen" ts="0" fn="" color="#00c0ffff" width="1.41000000" fill="255">395.75530066 52.90615388 407.90469014 27.90090789</stroke>
</layer>
</page>
<page width="596.00000000" height="842.00000000">
<background type="pdf" pageno="3"/>
<layer/>
</page>
<page width="596.00000000" height="842.00000000">
<background type="pdf" pageno="4"/>
<layer/>
</page>
<page width="596.00000000" height="842.00000000">
<background type="pdf" pageno="5"/>
<layer/>
</page>
<page width="596.00000000" height="842.00000000">
<background type="pdf" pageno="6"/>
<layer/>
</page>
<page width="596.00000000" height="842.00000000">
<background type="pdf" pageno="7"/>
<layer/>
</page>
</xournal>

View File

@ -0,0 +1 @@
https://en.wikipedia.org/w/index.php?title=TIFF&oldid=1216190460

View File

@ -0,0 +1,84 @@
<?xml version="1.0" standalone="no"?>
<xournal creator="Xournal++ 1.1.3" fileversion="4">
<title>Xournal++ document - see https://github.com/xournalpp/xournalpp</title>
<page width="596.00000000" height="842.00000000">
<background type="pdf" domain="absolute" filename="/home/benjamin/Desktop/bens_folder/school/ens/asp/aria/internship/work/articles/TIFF - Wikipedia/TIFF - Wikipedia.pdf" pageno="1"/>
<layer>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">45.57971191 109.10958862 168.65773219 109.10958862</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">237.75408936 123.76974487 289.62227446 123.76974487</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">131.04868487 140.96712475 191.27236261 140.96712475</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">238.78297412 139.16615888 302.21080438 139.16615888</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">193.36134225 155.49520697 252.82597818 157.89497312</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">297.75430979 155.70671145 374.09444242 155.70671145</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">45.60884838 168.93547626 371.86404885 168.93547626</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">50.10696285 185.16873446 356.93423163 185.16873446</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">185.32719888 214.67920729 243.15367004 214.67920729</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">272.44802428 213.47681471 373.51177378 213.47681471</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">198.47687020 200.96170725 281.73395491 200.96170725</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">46.17580698 229.88003817 76.89951361 229.88003817</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">123.43414559 230.69223451 144.75588991 230.69223451</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">198.39575902 229.51597103 374.37007801 229.51597103</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">45.67275875 244.74583145 80.51014446 244.74583145</stroke>
</layer>
</page>
<page width="596.00000000" height="842.00000000">
<background type="pdf" pageno="2"/>
<layer/>
</page>
<page width="596.00000000" height="842.00000000">
<background type="pdf" pageno="3"/>
<layer/>
</page>
<page width="596.00000000" height="842.00000000">
<background type="pdf" pageno="4"/>
<layer/>
</page>
<page width="596.00000000" height="842.00000000">
<background type="pdf" pageno="5"/>
<layer/>
</page>
<page width="596.00000000" height="842.00000000">
<background type="pdf" pageno="6"/>
<layer/>
</page>
<page width="596.00000000" height="842.00000000">
<background type="pdf" pageno="7"/>
<layer/>
</page>
<page width="596.00000000" height="842.00000000">
<background type="pdf" pageno="8"/>
<layer/>
</page>
<page width="596.00000000" height="842.00000000">
<background type="pdf" pageno="9"/>
<layer/>
</page>
<page width="596.00000000" height="842.00000000">
<background type="pdf" pageno="10"/>
<layer/>
</page>
<page width="596.00000000" height="842.00000000">
<background type="pdf" pageno="11"/>
<layer/>
</page>
<page width="596.00000000" height="842.00000000">
<background type="pdf" pageno="12"/>
<layer/>
</page>
<page width="596.00000000" height="842.00000000">
<background type="pdf" pageno="13"/>
<layer/>
</page>
<page width="596.00000000" height="842.00000000">
<background type="pdf" pageno="14"/>
<layer/>
</page>
<page width="596.00000000" height="842.00000000">
<background type="pdf" pageno="15"/>
<layer/>
</page>
<page width="596.00000000" height="842.00000000">
<background type="pdf" pageno="16"/>
<layer/>
</page>
</xournal>

View File

@ -21,6 +21,12 @@
<stroke tool="highlighter" color="#ff00007f" width="8.50000000" fill="128">78.66667086 411.37732832 172.83413256 411.37732832</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">182.94980638 411.63570950 294.96144099 411.63570950</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">78.08589681 419.59506323 154.70364562 419.59506323</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">201.73046875 190.98156738 295.14835752 190.98156738</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">77.83660889 203.19790649 95.32058716 202.45193481</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">103.98278809 201.52066040 298.68438360 201.52066040</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">78.63943481 212.82376099 103.41469363 212.82376099</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">154.10906982 212.40234375 294.61920570 212.40234375</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">79.34304810 223.27105713 254.63002133 223.27105713</stroke>
</layer>
</page>
<page width="612.00000000" height="792.00000000">

View File

@ -0,0 +1 @@
https://en.wikipedia.org/w/index.php?title=XnView&oldid=1214657498

View File

@ -0,0 +1,33 @@
<?xml version="1.0" standalone="no"?>
<xournal creator="Xournal++ 1.1.3" fileversion="4">
<title>Xournal++ document - see https://github.com/xournalpp/xournalpp</title>
<page width="596.00000000" height="842.00000000">
<background type="pdf" domain="absolute" filename="/home/benjamin/Desktop/bens_folder/school/ens/asp/aria/internship/work/articles/XnView - Wikipedia/XnView - Wikipedia.pdf" pageno="1"/>
<layer/>
</page>
<page width="596.00000000" height="842.00000000">
<background type="pdf" pageno="2"/>
<layer>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">370.34222412 602.18234253 543.74695181 602.18234253</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">487.12084961 619.35330200 515.29533244 619.35330200</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">484.81011963 635.81884766 538.79037907 635.81884766</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">483.86151123 654.73928833 547.09358727 654.73928833</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">483.16241455 666.38528442 500.30053711 665.64916992</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">482.34295654 684.58883667 531.63021756 684.58883667</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">484.23950195 700.91912842 538.54941348 700.91912842</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">485.53717041 715.33084106 524.40445437 715.33084106</stroke>
</layer>
</page>
<page width="596.00000000" height="842.00000000">
<background type="pdf" pageno="3"/>
<layer/>
</page>
<page width="596.00000000" height="842.00000000">
<background type="pdf" pageno="4"/>
<layer/>
</page>
<page width="596.00000000" height="842.00000000">
<background type="pdf" pageno="5"/>
<layer/>
</page>
</xournal>

View File

@ -1,3 +1,5 @@
# Notes: https://gitea.lemnoslife.com/Benjamin_Loison/Robust_image_source_identification_on_modern_smartphones/issues/21
import numpy as np
from matplotlib import pyplot as plt
from PIL import Image
@ -10,6 +12,10 @@ from rms_diff import rmsDiffPil, rmsDiffNumpy
sys.path.insert(0, '../../algorithms/context_adaptive_interpolator/')
from context_adaptive_interpolator import contextAdaptiveInterpolator
sys.path.insert(0, '../../algorithms/image_utils/')
from image_utils import showImageWithMatplotlib, randomGaussianImage, toPilImage
from tqdm import tqdm
IMAGE_SIZE = 64
@ -18,30 +24,38 @@ NUMBER_OF_IMAGES_PER_PHONE = 10_000
# Compared to images being 1.
PRNU_FACTOR = 0.1
IMAGE_SIZE_SHAPE = (IMAGE_SIZE, IMAGE_SIZE)
np.random.seed(0)
# Generate PRNUs and images of phones.
# Is such `np.maximum` probabilistically correct with our theoretical method? See #19.
def randomImage(scale):
return np.random.normal(loc = 0, scale = scale, size = (IMAGE_SIZE, IMAGE_SIZE))
imagesWithoutPrnu = [[randomGaussianImage(scale = 1, size = IMAGE_SIZE_SHAPE) for _ in range(NUMBER_OF_IMAGES_PER_PHONE)] for phoneIndex in range(NUMBER_OF_PHONES)]
imagesWithoutPrnu = [[randomImage(scale = 1) for _ in range(NUMBER_OF_IMAGES_PER_PHONE)] for phoneIndex in range(NUMBER_OF_PHONES)]
prnus = [np.array(Image.open('prnu.png').convert('F')) * PRNU_FACTOR / 255]
prnus = [randomGaussianImage(scale = PRNU_FACTOR, size = IMAGE_SIZE_SHAPE) for _ in range(NUMBER_OF_PHONES)]
imagesWithPrnu = [[imageWithoutPrnu + prnus[phoneIndex] for imageWithoutPrnu in imagesWithoutPrnu[phoneIndex]] for phoneIndex in range(NUMBER_OF_PHONES)]
allImages = np.max([np.max(imagesWithoutPrnu) + np.max(prnus) + np.max(imagesWithPrnu)])
def toPilImage(npArray):
return Image.fromarray(npArray)
def showImageWithPil(npArray):
npArray -= npArray.min()
npArray = (npArray / npArray.max()) * 255
Image.fromarray(npArray).show()
def showImageWithMatplotlib(npArray):
plt.imshow(npArray)
plt.show()
plt.title('RMS between actual PRNU and the mean of the first $N$ images with PRNU (i.e. estimated PRNU)')
plt.xlabel('$N$ first images with PRNU')
plt.ylabel('RMS')
plt.xscale('log')
rmss = []
mean = np.zeros(IMAGE_SIZE_SHAPE)
for imageIndex in range(NUMBER_OF_IMAGES_PER_PHONE):
mean = (mean * imageIndex + imagesWithPrnu[0][imageIndex]) / (imageIndex + 1)
rms = rmsDiffNumpy(mean, prnus[0])
rmss += [rms]
plt.plot(rmss)
plt.show()
##
NUMBER_OF_ROWS = 5
NUMBER_OF_COLUMNS = 3
@ -75,23 +89,6 @@ plt.show()
##
def toFileName(title):
return title.lower().replace(' ', '_').replace(',', '_')
for title, image in zip(['Actual PRNU', 'First image without PRNU'], [prnus[0], imagesWithoutPrnu[0][0]]):
plt.title(title)
plt.imshow(image)
plt.savefig(title.lower().replace(' ', '_') + '.svg')
for numberOfImages in [10 ** power for power in range(NUMBER_OF_ROWS)]:
title = 'First image with PRNU' if numberOfImages == 1 else f'Mean of first {numberOfImages:,} images with PRNU'
image = np.array(imagesWithPrnu[0][:numberOfImages]).mean(axis = 0)
plt.title(f'{title}\ni.e. estimated PRNU\nRMS with actual PRNU = {round(rmsDiffNumpy(image, prnus[0]), 4)}')
plt.imshow(image)
plt.savefig(f'{toFileName(title)}.svg')
##
# Compute CAI of phone images.
caiImages = [[contextAdaptiveInterpolator(image.load(), image) for image in imagesWithPrnuPil[phoneIndex]] for phoneIndex in tqdm(range(NUMBER_OF_PHONES))]
#caiImages[0][0].show()

View File

@ -0,0 +1,100 @@
# Notes: https://gitea.lemnoslife.com/Benjamin_Loison/Robust_image_source_identification_on_modern_smartphones/issues/25
import os
from PIL import Image
import numpy as np
import matplotlib.pyplot as plt
import sys
sys.path.insert(0, '../../algorithms/image_utils/')
from image_utils import showImageWithMatplotlib, randomGaussianImage, toPilImage, getPrnuShownAsSuch
sys.path.insert(0, '../../algorithms/context_adaptive_interpolator/')
from context_adaptive_interpolator import contextAdaptiveInterpolator
sys.path.insert(0, '../../algorithms/distance/')
from rms_diff import rmsDiffNumpy
from skimage.restoration import denoise_tv_chambolle
datasetPath = 'no_noise_images'
# Note that contrarily to `datasets/fake/`, here we do not have images being Gaussian with `scale` `1` but actual images with pixel values between 0 and 255.
# In addition to the range difference, note that the distribution in the first set of images was a Gaussian and here is very different and specific.
PRNU_FACTOR = 0.01
NOISE_FACTOR = 0.1
np.random.seed(0)
SPLIT_N_X_N_S = [1, 2, 4]
# len(SPLIT_N_X_N_S)
fig, axes = plt.subplots(2, 4)
fig.suptitle('PRNU estimation with different number of images having Gaussian noise and Gaussian noised PRNU')
for splitNXNIndex, splitNXN in enumerate(SPLIT_N_X_N_S):
IMAGE_SIZE_SHAPE = [dimension // splitNXN for dimension in (704, 469)]
#prnuNpArray = 255 * randomGaussianImage(scale = PRNU_FACTOR, size = IMAGE_SIZE_SHAPE)
prnuNpArray = getPrnuShownAsSuch(IMAGE_SIZE_SHAPE, 255) * PRNU_FACTOR
def isIn256Range(x):
return 0 <= x and x <= 255
imagesPrnuEstimateNpArray = []
isFirstImage = True
for imageName in os.listdir(datasetPath):
if imageName.endswith('.png'):
imagePath = f'{datasetPath}/{imageName}'
imageWithoutPrnuPil = Image.open(imagePath).convert('F')
imageWithoutPrnuNpArray = np.array(imageWithoutPrnuPil)
m = IMAGE_SIZE_SHAPE[1]
n = IMAGE_SIZE_SHAPE[0]
imageWithoutPrnuNpArrayTiles = [imageWithoutPrnuNpArray[x : x + m, y : y + n] for x in range(0, imageWithoutPrnuNpArray.shape[0], m) for y in range(0, imageWithoutPrnuNpArray.shape[1], n)]
for imageWithoutPrnuNpArrayTile in imageWithoutPrnuNpArrayTiles:
#print(imageWithoutPrnuNpArrayTile.shape, tuple(IMAGE_SIZE_SHAPE[::-1]))
#if imageWithoutPrnuNpArrayTile.shape != tuple(IMAGE_SIZE_SHAPE[::-1]):
# continue
imageNoise = randomGaussianImage(scale = 255 * NOISE_FACTOR, size = imageWithoutPrnuNpArrayTile.shape)
imageWithPrnuNpArray = imageWithoutPrnuNpArrayTile + prnuNpArray + imageNoise
if splitNXNIndex == 0 and isFirstImage:
axis = axes[0]
axis[0].set_title('First image without noise')
axis[0].imshow(imageWithoutPrnuNpArrayTile)
axis[1].set_title('Actual Gaussian noised PRNU')
axis[1].imshow(prnuNpArray)
axis[2].set_title('F. i. with G. n.')
axis[2].imshow(imageWithoutPrnuNpArray + imageNoise)
axis[3].set_title('F. i. with G. n. and PRNU')
axis[3].imshow(imageWithoutPrnuNpArray + prnuNpArray + imageNoise)
isFirstImage = False
#assert all([isIn256Range(extreme) for extreme in [imageWithPrnuNpArray.max(), imageWithPrnuNpArray.min()]]), 'Adding the PRNU resulted in out of 256 bounds image'
imageWithPrnuPil = toPilImage(imageWithPrnuNpArray)
#imagePrnuEstimatePil = contextAdaptiveInterpolator(imageWithPrnuPil.load(), imageWithPrnuPil)
#imagePrnuEstimateNpArray = np.array(imagePrnuEstimatePil)
imagePrnuEstimateNpArray = imageWithPrnuNpArray - denoise_tv_chambolle(imageWithPrnuNpArray, weight=0.2, channel_axis=-1)
imagesPrnuEstimateNpArray += [imagePrnuEstimateNpArray]
cameraPrnuEstimateNpArray = np.array(imagesPrnuEstimateNpArray).mean(axis = 0)
rms = rmsDiffNumpy(cameraPrnuEstimateNpArray, prnuNpArray, True)
title = f'RMS with actual PRNU: {rmsDiffNumpy(cameraPrnuEstimateNpArray, prnuNpArray):.4f}\n(normalized RMS: {rmsDiffNumpy(cameraPrnuEstimateNpArray, prnuNpArray, True):.4f})'
axis = axes[1]
axis[splitNXNIndex].set_title(f'Number of images: {len(imagesPrnuEstimateNpArray)}\n{title}')
axis[splitNXNIndex].imshow(cameraPrnuEstimateNpArray)
axes[1][3].axis('off')
plt.tight_layout()
plt.show()

View File

@ -0,0 +1 @@
https://web.archive.org/web/20220121204219/https://mcolom.perso.math.cnrs.fr/download/no_noise_images/no_noise_images.zip

View File

@ -0,0 +1 @@
https://web.archive.org/web/20221230200626/https://mcolom.perso.math.cnrs.fr/pages/no_noise_images/

View File

@ -0,0 +1,39 @@
<?xml version="1.0" standalone="no"?>
<xournal creator="Xournal++ 1.1.3" fileversion="4">
<title>Xournal++ document - see https://github.com/xournalpp/xournalpp</title>
<page width="596.00000000" height="842.00000000">
<background type="pdf" domain="absolute" filename="/home/benjamin/Desktop/bens_folder/school/ens/asp/aria/internship/work/datasets/noise_free_test_images/webpage/noise_free_test_images.pdf" pageno="1"/>
<layer>
<stroke tool="pen" ts="0" fn="" color="#00c0ffff" width="1.41000000" fill="255">44.16991935 149.86110719 276.63410082 149.86110719</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">280.30546835 143.78018970 541.08492691 143.78018970</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">42.96677014 154.05265871 198.56628848 154.05265871</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">233.93128450 170.94835013 492.23933025 170.94835013</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">42.99659414 184.92242482 112.65886477 184.92242482</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">149.16792941 183.91166246 216.17115865 183.91166246</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">294.03605816 184.15454202 354.65329212 184.15454202</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">378.27254366 184.83142695 394.34985957 184.14821152</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">85.58659829 199.62412937 411.27805159 199.62412937</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">418.29380004 200.39743471 541.57682036 200.39743471</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">44.73424234 213.56413029 69.64328426 213.56413029</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">112.38907743 213.70955538 483.94315603 213.70955538</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">44.49702491 230.38688218 98.83166378 230.38688218</stroke>
<stroke tool="pen" ts="0" fn="" color="#00c0ffff" width="1.41000000" fill="255">155.44600053 263.30094771 311.89079733 263.30094771</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">370.62786512 257.40568303 547.67625847 257.40568303</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">44.88887314 272.09091817 331.36022445 272.09091817</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">350.89020532 268.80336793 450.39163443 268.80336793</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">44.93306058 287.15898498 351.10131254 287.15898498</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">45.27054464 307.01382219 263.17418553 307.01382219</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">93.80213209 345.70257013 454.50227983 345.70257013</stroke>
<text font="Sans" size="11.00000000" x="45.82731792" y="353.90876455" color="#00c0ffff" ts="0" fn="">legends not matching actual webpage web-browser rendering</text>
<text font="Sans" size="11.00000000" x="48.63067627" y="32.63059998" color="#00c0ffff" ts="0" fn="">Almost identical content as `no_noise_images.zip/readme.txt`.</text>
</layer>
</page>
<page width="596.00000000" height="842.00000000">
<background type="pdf" pageno="2"/>
<layer/>
</page>
<page width="596.00000000" height="842.00000000">
<background type="pdf" pageno="3"/>
<layer/>
</page>
</xournal>

View File

@ -0,0 +1,65 @@
from datetime import datetime
import matplotlib.pyplot as plt
import numpy as np
import matplotlib.dates as mdates
from PIL import Image
from PIL.ExifTags import TAGS
import os
path = 'photos'
os.chdir(path)
names = []
dates = []
for fileName in sorted(os.listdir()):
try:
image = Image.open(fileName)
except:
# Skip raw images.
continue
imageExif = image.getexif()
dateTimeKey = list(TAGS.keys())[list(TAGS.values()).index('DateTime')]
dateTime = imageExif[dateTimeKey]
names += [fileName.replace('DSC0', '').replace('.JPG', '')]
dates += [dateTime[:(-1 if fileName.endswith('.tif') else len(dateTime))]]
# Convert date strings to datetime
dates = [datetime.strptime(d, "%Y:%m:%d %H:%M:%S") for d in dates]
# Choose some nice levels
NUMBER_OF_LEVELS = 10
actualLevels = range(-NUMBER_OF_LEVELS * 2 + 1, NUMBER_OF_LEVELS * 2 , 2)
levels = np.tile(actualLevels,
int(np.ceil(len(dates)/len(actualLevels))))[:len(dates)]
# Create figure and plot a stem plot with the date
fig, ax = plt.subplots(figsize=(8.8, 4), layout="constrained")
#ax.set(title="Matplotlib release dates")
ax.vlines(dates, 0, levels, color="tab:red") # The vertical stems.
ax.plot(dates, np.zeros_like(dates), "-o",
color="k", markerfacecolor="w") # Baseline and markers on it.
# annotate lines
for d, l, r in zip(dates, levels, names):
ax.annotate(r, xy=(d, l),
xytext=(-3, np.sign(l)*3), textcoords="offset points",
horizontalalignment="right",
verticalalignment="bottom" if l > 0 else "top")
# format x-axis with 4-month intervals
ax.xaxis.set_major_formatter(mdates.DateFormatter("%Y:%m:%d %H:%M:%S"))
plt.setp(ax.get_xticklabels(), rotation=30, ha="right")
# remove y-axis and spines
ax.yaxis.set_visible(False)
ax.spines[["left", "top", "right"]].set_visible(False)
ax.margins(y=0.1)
plt.show()

View File

@ -0,0 +1,35 @@
import numpy as np
from utils import Color
import os
from tqdm import tqdm
import rawpy
import matplotlib.pyplot as plt
os.chdir('flat-field/NEF')
firstBayerFilterOccurrenceImages = []
for fileName in tqdm(os.listdir()):
with rawpy.imread(fileName) as raw:
colorDesc = raw.color_desc.decode('ascii')
assert colorDesc == 'RGBG'
assert np.array_equal(raw.raw_pattern, np.array([[0, 1], [3, 2]], dtype = np.uint8))
# RG
# GB
firstBayerFilterOccurrenceImage = raw.raw_image_visible.copy()[:2, :2]
firstBayerFilterOccurrenceImages += [firstBayerFilterOccurrenceImage]
firstBayerFilterOccurrenceImages = np.array(firstBayerFilterOccurrenceImages)
print(rawImageVisible)
NUMBER_OF_COLORS = 3
HEX_COLOR = '#' + '%02x' * NUMBER_OF_COLORS
COLOR_BASE = 256
def getColor(colorIndex):
return HEX_COLOR % tuple((255 if colorIndex == colorIndexTmp else 0) for colorIndexTmp in range(NUMBER_OF_COLORS))
for colorIndex, (colorY, colorX) in enumerate([(0, 0), (0, 1), (1, 1)]):
X = firstBayerFilterOccurrenceImages[:, colorY, colorX] - np.mean(firstBayerFilterOccurrenceImages, axis = 0)[colorY, colorX]
plt.hist(X, bins = len(set(X)), color = getColor(colorIndex), alpha = 0.3)
plt.show()

View File

@ -0,0 +1,122 @@
#!/usr/bin/env python
import numpy as np
import matplotlib.pyplot as plt
from tqdm import tqdm
from utils import denoise, iterativeMean, getColorChannel, escapeFilePath, Color, mergeSingleColorChannelImagesAccordingToBayerFilter, rescaleRawImageForDenoiser, updateExtremes, saveNpArray
import sys
import os
import random
sys.path.insert(0, '../../algorithms/distance/')
from rms_diff import rmsDiffNumpy
DENOISER = 'wavelet'
IMAGES_CAMERAS_FOLDER = {
'RAISE': 'flat-field/nef',
'Rafael 23/04/24': 'rafael/230424',
}
TRAINING_PORTION = 0.5
setting = ','.join([escapeFilePath(imageCameraFolder) for imageCameraFolder in IMAGES_CAMERAS_FOLDER]) + f'_{DENOISER}'
imagesCamerasFileNames = {camera: os.listdir(imageCameraFolder) for camera, imageCameraFolder in IMAGES_CAMERAS_FOLDER.items()}
random.seed(0)
# To not have a bias (chronological for instance) when split to make training and testing sets.
for camera in IMAGES_CAMERAS_FOLDER:
random.shuffle(imagesCamerasFileNames[camera])
minimumNumberOfImagesCameras = 4#min([len(imagesCamerasFileNames[camera]) for camera in IMAGES_CAMERAS_FOLDER])
for camera in IMAGES_CAMERAS_FOLDER:
imagesCamerasFileNames[camera] = imagesCamerasFileNames[camera][:minimumNumberOfImagesCameras]
numberOfCameras = len(IMAGES_CAMERAS_FOLDER)
camerasIterativeMean = {camera: iterativeMean() for camera in IMAGES_CAMERAS_FOLDER}
minColor = None
maxColor = None
# Assume that for each camera, its images have the same resolution.
# The following consider a given color channel resolution, assuming they all have the same resolution.
minimalColorChannelCameraResolution = None
for camera in IMAGES_CAMERAS_FOLDER:
imageFileName = imagesCamerasFileNames[camera][0]
imageFilePath = f'{IMAGES_CAMERAS_FOLDER[camera]}/{imageFileName}'
singleColorChannelImagesShape = getColorChannel(imageFilePath, Color.RED).shape
if minimalColorChannelCameraResolution is None or singleColorChannelImagesShape < minimalColorChannelCameraResolution:
minimalColorChannelCameraResolution = singleColorChannelImagesShape
minColor = 13#None
maxColor = 7497#None
accuracy = []
numberOfTrainingImages = int(minimumNumberOfImagesCameras * TRAINING_PORTION)
numberOfTestingImages = minimumNumberOfImagesCameras - int(minimumNumberOfImagesCameras * TRAINING_PORTION)
cameraTestingImagesNoise = {}
returnSingleColorChannelImage = lambda singleColorChannelImage, _minColor, _maxColor: singleColorChannelImage
for computeExtremes in tqdm(([True] if minColor is None or maxColor is None else []) + [False], 'Compute extremes'):
rescaleIfNeeded = returnSingleColorChannelImage if computeExtremes else rescaleRawImageForDenoiser
if not computeExtremes:
print(f'{minColor=} {maxColor=}')
print('Extracting noise of testing images')
for camera in tqdm(IMAGES_CAMERAS_FOLDER, 'Camera'):
for cameraTestingImageIndex in tqdm(range(numberOfTestingImages), 'Camera testing image index'):
# Should make a function
imageFileName = imagesCamerasFileNames[camera][numberOfTrainingImages + cameraTestingImageIndex]
imageFilePath = f'{IMAGES_CAMERAS_FOLDER[camera]}/{imageFileName}'
# Should make a function
singleColorChannelImages = {color: rescaleIfNeeded(getColorChannel(imageFilePath, color)[:minimalColorChannelCameraResolution[0],:minimalColorChannelCameraResolution[1]], minColor, maxColor) for color in Color}
multipleColorsImage = mergeSingleColorChannelImagesAccordingToBayerFilter(singleColorChannelImages)
singleColorChannelDenoisedImages = {color: denoise(singleColorChannelImages[color], DENOISER) for color in Color}
multipleColorsDenoisedImage = mergeSingleColorChannelImagesAccordingToBayerFilter(singleColorChannelDenoisedImages)
imagePrnuEstimateNpArray = multipleColorsImage - multipleColorsDenoisedImage
cameraTestingImagesNoise[camera] = cameraTestingImagesNoise.get(camera, []) + [multipleColorsDenoisedImage]
for cameraTrainingImageIndex in tqdm(range(minimumNumberOfImagesCameras if computeExtremes else numberOfTrainingImages), 'Camera training image index'):
for cameraIndex, camera in enumerate(tqdm(IMAGES_CAMERAS_FOLDER, 'Camera')):
imageFileName = imagesCamerasFileNames[camera][cameraTrainingImageIndex]
imageFilePath = f'{IMAGES_CAMERAS_FOLDER[camera]}/{imageFileName}'
singleColorChannelImages = {color: rescaleIfNeeded(getColorChannel(imageFilePath, color)[:minimalColorChannelCameraResolution[0],:minimalColorChannelCameraResolution[1]], minColor, maxColor) for color in Color}
multipleColorsImage = mergeSingleColorChannelImagesAccordingToBayerFilter(singleColorChannelImages)
if computeExtremes:
minColor, maxColor = updateExtremes(multipleColorsImage, minColor, maxColor)
continue
singleColorChannelDenoisedImages = {color: denoise(singleColorChannelImages[color], DENOISER) for color in Color}
multipleColorsDenoisedImage = mergeSingleColorChannelImagesAccordingToBayerFilter(singleColorChannelDenoisedImages)
imagePrnuEstimateNpArray = multipleColorsImage - multipleColorsDenoisedImage
cameraIterativeMean = camerasIterativeMean[camera]
cameraIterativeMean.add(imagePrnuEstimateNpArray)
if cameraIndex == numberOfCameras - 1:
numberOfTrainingImagesAccuracy = 0
# Loop over each camera testing image folder.
for actualCamera in IMAGES_CAMERAS_FOLDER:
for cameraTestingImageIndex in tqdm(range(numberOfTestingImages), 'Camera testing image index'):
cameraPredicted = None
minimalDistance = None
# Loop over each camera to compute closeness between the considered testing image noise and the estimated PRNUs of the various cameras.
for camera in IMAGES_CAMERAS_FOLDER:
distance = rmsDiffNumpy(cameraTestingImagesNoise[camera][cameraTestingImageIndex], camerasIterativeMean[camera].mean)
print(f'{cameraTestingImageIndex=} {camera=} {actualCamera=} {distance=}')
if minimalDistance is None or distance < minimalDistance:
minimalDistance = distance
cameraPredicted = camera
if cameraPredicted == actualCamera:
numberOfTrainingImagesAccuracy += 1
accuracy += [numberOfTrainingImagesAccuracy / (numberOfTestingImages * numberOfCameras)]
for camera in IMAGES_CAMERAS_FOLDER:
plt.imsave(f'{setting}_estimated_prnu_subgroup_{escapeFilePath(camera)}.png', (camerasIterativeMean[camera].mean))
plt.title(f'Accuracy of camera source attribution thanks to a given number of images to estimate PRNUs with {DENOISER} denoiser')
plt.xlabel('Number of images to estimate PRNU')
plt.ylabel('Accuracy of camera source attribution')
plt.plot(accuracy)
internalTitle = f'{setting}_accuracy_of_camera_source_attribution'
saveNpArray(internalTitle, accuracy)
plt.savefig(f'{internalTitle}.svg')

113
datasets/raise/extract_noise.py Executable file
View File

@ -0,0 +1,113 @@
#!/usr/bin/env python
import numpy as np
import os
from tqdm import tqdm
import csv
from utils import Color, denoise, iterativeMean, isARawImage, escapeFilePath, getColorChannel, saveNpArray, rescaleRawImageForDenoiser, updateExtremes
import matplotlib.pyplot as plt
from scipy.ndimage import gaussian_filter
imagesFolderPath = 'rafael/arw'
imagesFolderPathFileName = escapeFilePath(imagesFolderPath)
# Among:
# `denoise` possible denoisers and `mean`.
denoiser = 'mean'
raiseNotFlatFields = False
# `[Color.RED, Color.GREEN_RIGHT, ...]` or `Color` or `[None]` for not raw images.
colors = [None]
imagesFileNames = os.listdir(imagesFolderPath + ('/png' if raiseNotFlatFields else ''))
if raiseNotFlatFields:
files = {}
with open('RAISE_all.csv') as csvfile:
reader = csv.DictReader(csvfile)
for row in tqdm(list(reader), 'CSV parsing'):
file = row['File'] + '.png'
files[file] = row
imagesFileNames = [imageFileName for imageFileName in tqdm(imagesFileNames, 'Filtering images') if files[imageFileName]['Device'] == 'Nikon D7000' and Image.open(f'{imagesFolderPath}/png/{imageFileName}').size == (4946, 3278)]
# Among:
# - `None`
# - `'sky'`
# - `'wall'`
type_ = None
if type_ is not None:
ranges = {
'sky': range(2_699, 2_807),
'wall': range(2_807, 2_912),
}
imagesFileNames = [f'DSC0{imageIndex}.ARW' for imageIndex in ranges[type_]]
imagesFolderPathFileName += f'_{type_}'
minColor = None
maxColor = None
def getImageNpArray(imageFileName, computeExtremes, color):
global minColor, maxColor
if raiseNotFlatFields:
imageFileName = imageFileName.replace('.png', '.NEF')
imageFilePath = f'{imagesFolderPath}/nef/{imageFileName}'
else:
imageFilePath = f'{imagesFolderPath}/{imageFileName}'
imageNpArray = getColorChannel(imageFilePath, color)
if computeExtremes:
minColor, maxColor = updateExtremes(imageNpArray, minColor, maxColor)
return
if isARawImage(imageFileName) and denoiser != 'mean':
imageNpArray = rescaleRawImageForDenoiser(imageNpArray, minColor, maxColor)
# Pay attention to range of values expected by the denoiser.
# Indeed if provide the thousands valued raw image, then the denoiser only returns values between 0 and 1 and making the difference between both look pointless.
return imageNpArray
# `color` is the actual color to estimate PRNU with.
def treatImage(imageFileName, computeExtremes = False, color = None):
global estimatedPrnuIterativeMean
imageNpArray = getImageNpArray(imageFileName, computeExtremes, color)
if imageNpArray is None:
return
if denoiser != 'mean':
imageDenoisedNpArray = denoise(imageNpArray, denoiser)
else:
imageDenoisedNpArray = means[color]
imageNoiseNpArray = imageNpArray - imageDenoisedNpArray
estimatedPrnuIterativeMean.add(imageNoiseNpArray)
if (minColor is None or maxColor is None) and denoiser != 'mean':
# Assuming same intensity scale across color channels.
for imageFileName in tqdm(imagesFileNames, 'Computing extremes of images'):
for color in colors:
treatImage(imageFileName, computeExtremes = True, color = color)
# To skip this step next time.
# Maybe thanks to `rawpy.RawPy` fields, possibly stating device maximal value, can avoid doing so to some extent.
print(f'{minColor=}')
print(f'{maxColor=}')
if denoiser == 'mean':
means = {}
for color in colors:
colorIterativeMean = iterativeMean()
for imageFileName in tqdm(imagesFileNames, f'Computing mean of {color} colored images'):
imageNpArray = getImageNpArray(imageFileName, False, color)
imageNpArray = gaussian_filter(imageNpArray, sigma = 5)
colorIterativeMean.add(imageNpArray)
means[color] = colorIterativeMean.mean
fileName = f'mean_{imagesFolderPathFileName}_{color}'
# Then use `merge_single_color_channel_images_according_to_bayer_filter.py` to consider all color channels, instead of saving this single color channel as an image.
saveNpArray(fileName, colorIterativeMean.mean)
for color in colors:
estimatedPrnuIterativeMean = iterativeMean()
for imageFileName in tqdm(imagesFileNames, f'Denoising images for color {color}'):
treatImage(imageFileName, color = color)
npArrayFilePath = f'mean_{imagesFolderPathFileName}_{denoiser}_{color}'
saveNpArray(npArrayFilePath, estimatedPrnuIterativeMean.mean)

View File

@ -0,0 +1,92 @@
import matplotlib.pyplot as plt
import numpy as np
from matplotlib.backend_bases import MouseButton
import matplotlib.image as mpimg
import os
from tqdm import tqdm
# `Zoom to rectangle` shortcut is `o`.
os.chdir('flat-field/TIF')
fileNames = sorted(os.listdir())[41:]
fileNameIndex = 0
xys = []
progressBar = tqdm(total = len(fileNames))
def displayImage():
global fileNameIndex
if len(fileNames) > fileNameIndex:
fileName = fileNames[fileNameIndex]
image = mpimg.imread(fileName)
fig, ax = plt.subplots()
ax.imshow(image)
fileNameIndex += 1
plt.connect('button_press_event', onClick)
mng = plt.get_current_fig_manager()
mng.full_screen_toggle()
fig.canvas.toolbar.zoom()
fig.show()
def onClick(event):
global xys
button = event.button
if button is MouseButton.RIGHT:
xy = [event.xdata, event.ydata]
xys += [xy]
if button is MouseButton.MIDDLE or button is MouseButton.RIGHT:
if button is MouseButton.MIDDLE:
print(f'Skipped {fileName}')
plt.close()
displayImage()
progressBar.update(1)
displayImage()
##
xys = [[3061.83568617998, 842.2814890347822], [3048.9553647053262, 891.7951806771933], [3109.6923734795832, 878.8472318972372], [3095.1992301129835, 859.646383417094], [3044.950680354029, 830.531447782855], [3034.039239345914, 775.7097977790371], [3034.0562409262707, 753.1780473232427], [2991.7499740162116, 742.1417475753151], [3021.5541233968024, 737.7119154247914], [3022.412107608028, 703.0028101114289], [3094.4565209481857, 680.7339885543926], [3101.840188177543, 692.6886985125186], [3150.09819940581, 686.3913997808281], [3148.4955568040136, 694.3747788064451], [3165.156239230552, 703.9346483213995], [3158.7235775979357, 710.9522942666542], [3156.5302112965014, 697.5993396871294], [3106.8119050930513, 698.4561327048264], [3151.4728367372877, 694.3380683877142], [3137.283014559081, 662.9543422436452], [3008.1987322850605, 692.0180565561739], [3036.647953172549, 705.1188029786949], [2988.9166660643627, 684.0851408200217], [3001.5070402052334, 684.1944057536488], [2967.282534077184, 680.6072888791263], [2983.5140619626286, 693.469904886339], [2979.972210442175, 702.9033995969894], [2974.7535915953795, 709.6086279669086], [2972.55952140686, 700.4689248964266], [2967.1769510144627, 703.4861098128929], [2968.4714535085923, 708.5924315970815], [2978.725084963369, 725.0064286729727], [2992.7472737250696, 718.9682686788141], [2999.106406229902, 713.0463041988097], [2981.5746364633296, 692.5739107725338], [3014.22885383495, 675.1638989177214], [3004.351989366563, 635.6738446427469], [2964.9109157636794, 580.2416938434527], [2976.672441933737, 599.3922555819147], [2972.9623072548534, 578.6218471929612], [2694.5865522760287, 972.5526873692775], [2924.1211630176217, 1115.9816839025543], [2910.2861978522596, 1095.5172128924614], [2917.4530137143342, 1067.9680470058072], [2919.3469031337613, 1068.44539073963], [2959.4757277956496, 1105.6227950624348], [2936.370033263817, 1157.9142039933472], [2965.3568614486203, 1145.3186319170795], [2951.1991473505136, 1070.8989245366433], [2946.108094501549, 1045.891549058405], [2947.19213475732, 1074.4303801863052], [2943.690837961984, 1071.4536958497956], [3021.083385372544, 1116.881810271317], [3051.7205580454297, 1103.0992679894152], [3107.0873956690143, 972.8919609441568], [2861.932349690137, 1131.4847600231471], [2789.583044951935, 964.6512841164608]]
x, y = [[xy[dimensionIndex] for xy in xys] for dimensionIndex in range(2)]
plt.title('Center wall marker locations')
plt.scatter(x, y, c = range(len(x)))
for xyIndex, xy in enumerate(xys):
plt.text(xy[0], xy[1] + 10, str(xyIndex), horizontalalignment = 'center')
plt.show()
##
greatestDistances = []
#for xy in xys:
for xy, otherXy in zip(xys, xys[1:]):
greatestDistance = None
#for otherXy in xys:
if xy != otherXy:
distance = sum([(xy[dimensionIndex] - otherXy[dimensionIndex]) ** 2 for dimensionIndex in range(2)]) ** 0.5
if greatestDistance is None or distance > greatestDistance:
greatestDistance = distance
greatestDistances += [greatestDistance]
fig, ax = plt.subplots()
plt.title('Distance between a wall marker location and the next one')
ax.boxplot(greatestDistances)
ys = []
for percentile in [25, 50, 75]:
y = np.percentile(greatestDistances, percentile)
ys += [y]
ax.axhline(y = y)
ax.set_yticks(list(ax.get_yticks())[1:-1] + ys)
ax.set_xticks([], [])
fig.show()

View File

@ -0,0 +1,41 @@
import os
from PIL import Image
import matplotlib.pyplot as plt
import numpy as np
from tqdm import tqdm
os.chdir('flat-field/TIF')
NUMBER_OF_COLORS = 3
HEX_COLOR = '#' + '%02x' * NUMBER_OF_COLORS
COLOR_BASE = 256
def getColor(colorIntensity, colorIndex):
return HEX_COLOR % tuple((colorIntensity if colorIndex == colorIndexTmp else 0) for colorIndexTmp in range(NUMBER_OF_COLORS))
def getHistogram(fileName):
image = Image.open(fileName)
#image = image.crop((1, 1, 2, 2))
#print(image.size)
histogram = image.histogram()
colors = [histogram[COLOR_BASE * colorIndex:COLOR_BASE * (colorIndex + 1)] for colorIndex in range(NUMBER_OF_COLORS)]
return colors
def plotHistogram(colors):
for colorIndex, color in enumerate(colors):
for colorIntensity in range(COLOR_BASE):
plt.bar(colorIntensity, color[colorIntensity], color = getColor(colorIntensity, colorIndex), alpha = 0.3)
fileNameColors = []
for fileName in tqdm(os.listdir()):
colors = getHistogram(fileName)
fileNameColors += [colors]
meanFileNameColors = np.mean(fileNameColors, axis = 0)
plotHistogram(meanFileNameColors)
plt.show()

View File

@ -0,0 +1,18 @@
#!/usr/bin/env python
from PIL import Image
from utils import Color, mergeSingleColorChannelImagesAccordingToBayerFilter
import matplotlib.pyplot as plt
import numpy as np
PREFIX = 'mean_rafael_arw_sky_mean_'
def getImageByColor(color):
filePath = PREFIX + f'{color}.npy'
image = np.load(filePath)
return image
singleColorChannelImages = {color: getImageByColor(color) for color in Color}
multipleColorsImage = mergeSingleColorChannelImagesAccordingToBayerFilter(singleColorChannelImages, progress = True)
plt.imsave(PREFIX + 'multiple_colors.png', multipleColorsImage)

View File

@ -0,0 +1,10 @@
import numpy as np
import matplotlib.pyplot as plt
fileName = 'mean_flat-field_nef_wavelet_blue'
npArray = np.load(f'{fileName}.npy')
# For other than raw images:
#npArray = (npArray - npArray.min()) / (npArray.max() - npArray.min())
plt.imsave(f'{fileName}.png', npArray)
#plt.imshow(npArray)
#plt.show()

View File

@ -0,0 +1,70 @@
#!/usr/bin/env python
import numpy as np
import matplotlib.pyplot as plt
from tqdm import tqdm
from utils import denoise, iterativeMean, getColorChannel, escapeFilePath, Color, mergeSingleColorChannelImagesAccordingToBayerFilter, rescaleRawImageForDenoiser, updateExtremes, saveNpArray
import sys
import os
import random
sys.path.insert(0, '../../algorithms/distance/')
from rms_diff import rmsDiffNumpy
NUMBER_OF_SUBGROUPS = 2
DENOISER = 'wavelet'
IMAGES_FOLDER = 'flat-field/NEF'
setting = escapeFilePath(IMAGES_FOLDER) + f'_{DENOISER}'
imagesFileNames = os.listdir(IMAGES_FOLDER)
random.seed(0)
# To not have a bias (chronological for instance) when split to make subgroups.
random.shuffle(imagesFileNames)
numberOfImagesPerSubgroup = len(imagesFileNames) // NUMBER_OF_SUBGROUPS
subgroupsIterativeMean = [iterativeMean() for _ in range(NUMBER_OF_SUBGROUPS)]
rmss = []
minColor = None
maxColor = None
returnSingleColorChannelImage = lambda singleColorChannelImage, _minColor, _maxColor: singleColorChannelImage
for computeExtremes in tqdm(([True] if minColor is None or maxColor is None else []) + [False], 'Compute extremes'):
rescaleIfNeeded = returnSingleColorChannelImage if computeExtremes else rescaleRawImageForDenoiser
for subgroupImageIndex in tqdm(range(numberOfImagesPerSubgroup), 'Subgroup image index'):
for subgroupIndex in tqdm(range(NUMBER_OF_SUBGROUPS), 'Subgroup'):
imageIndex = (subgroupIndex * NUMBER_OF_SUBGROUPS) + subgroupImageIndex
imageFileName = imagesFileNames[imageIndex]
imageFilePath = f'{IMAGES_FOLDER}/{imageFileName}'
singleColorChannelImages = {color: rescaleIfNeeded(getColorChannel(imageFilePath, color), minColor, maxColor) for color in Color}
multipleColorsImage = mergeSingleColorChannelImagesAccordingToBayerFilter(singleColorChannelImages)
if computeExtremes:
minColor, maxColor = updateExtremes(multipleColorsImage, minColor, maxColor)
continue
singleColorChannelDenoisedImages = {color: denoise(singleColorChannelImages[color], DENOISER) for color in Color}
multipleColorsDenoisedImage = mergeSingleColorChannelImagesAccordingToBayerFilter(singleColorChannelDenoisedImages)
imagePrnuEstimateNpArray = multipleColorsImage - multipleColorsDenoisedImage
subgroupIterativeMean = subgroupsIterativeMean[subgroupIndex]
subgroupIterativeMean.add(imagePrnuEstimateNpArray)
if subgroupIndex == NUMBER_OF_SUBGROUPS - 1:
assert NUMBER_OF_SUBGROUPS == 2
rms = rmsDiffNumpy(subgroupIterativeMean.mean, subgroupsIterativeMean[1 - subgroupIndex].mean)
rmss += [rms]
for subgroupIndex in range(NUMBER_OF_SUBGROUPS):
plt.imsave(f'{setting}_estimated_prnu_subgroup_{subgroupIndex}.png', (subgroupsIterativeMean[subgroupIndex].mean))
plt.title(f'RMS between both subgroups estimated PRNUs with {DENOISER} denoiser for a given number of images among them')
plt.xlabel('Number of images of each subgroup')
plt.ylabel('RMS between both subgroups estimated PRNUs')
plt.plot(rmss)
saveNpArray(f'{setting}_rmss', rmss)
plt.savefig(f'{setting}_rms_between_estimated_prnu_of_2_subgroups.svg')
#plt.show()

132
datasets/raise/utils.py Normal file
View File

@ -0,0 +1,132 @@
from enum import Enum, auto
import skimage.restoration
import numpy as np
import rawpy
from tqdm import tqdm
from PIL import Image
from skimage import img_as_float
from datetime import datetime
import builtins as __builtin__
class Color(Enum):
RED = auto()
GREEN_RIGHT = auto()
GREEN_BOTTOM = auto()
BLUE = auto()
def __str__(self):
return self.name.lower()
# Among:
# - `wavelet`
# - `bilateral`
# - `tv_chambolle`
def denoise(imageNpArray, denoiserName):
skImageRestorationDenoise = getattr(skimage.restoration, f'denoise_{denoiserName}')
match denoiserName:
case 'wavelet':
imageDenoisedNpArray = skImageRestorationDenoise(imageNpArray, rescale_sigma=True)
case 'bilateral':
imageDenoisedNpArray = skImageRestorationDenoise(imageNpArray, sigma_color=0.05, sigma_spatial=15)
case 'tv_chambolle':
imageDenoisedNpArray = skImageRestorationDenoise(imageNpArray, weight=0.2)
return imageDenoisedNpArray
class iterativeMean:
mean = None
numberOfElementsInMean = 0
def add(self, element):
if self.mean is None:
self.mean = element
else:
self.mean = ((self.mean * self.numberOfElementsInMean) + element) / (self.numberOfElementsInMean + 1)
self.numberOfElementsInMean += 1
RAW_IMAGE_FILE_EXTENSIONS = [
'arw',
'nef',
]
def getRawColorChannel(raw, color):
colorDesc = raw.color_desc.decode('ascii')
assert colorDesc == 'RGBG'
assert np.array_equal(raw.raw_pattern, np.array([[0, 1], [3, 2]], dtype = np.uint8))
# RG
# GB
rawImageVisible = raw.raw_image_visible.copy()
redRawImageVisible = rawImageVisible[::2, ::2]
greenRightRawImageVisible = rawImageVisible[::2, 1::2]
greenBottomRawImageVisible = rawImageVisible[1::2, ::2]
blueRawImageVisible = rawImageVisible[1::2, 1::2]
match color:
case Color.RED:
imageNpArray = redRawImageVisible
case Color.GREEN_RIGHT:
imageNpArray = greenRightRawImageVisible
case Color.GREEN_BOTTOM:
imageNpArray = greenBottomRawImageVisible
case Color.BLUE:
imageNpArray = blueRawImageVisible
return imageNpArray
def isARawImage(imageFilePath):
return any([imageFilePath.lower().endswith(f'.{rawImageFileExtension}') for rawImageFileExtension in RAW_IMAGE_FILE_EXTENSIONS])
def getColorChannel(imageFilePath, color):
if isARawImage(imageFilePath):
with rawpy.imread(imageFilePath) as raw:
imageNpArray = getRawColorChannel(raw, color)
else:
imagePil = Image.open(imageFilePath)
imageNpArray = img_as_float(np.array(imagePil))
return imageNpArray
def escapeFilePath(filePath):
return filePath.replace('/', '_')
def getNewIndex(index, offset):
newIndex = (index - offset) * 2 + offset
return newIndex
def silentTqdm(data, desc = None):
return data
def mergeSingleColorChannelImagesAccordingToBayerFilter(singleColorChannelImages, progress = False):
colorImage = singleColorChannelImages[list(Color)[0]]
multipleColorsImage = np.empty([dimension * 2 for dimension in colorImage.shape], dtype = np.float64)
'''
Assume Bayer Filter:
RG
GB
'''
multipleColorsImage[::2,::2] = singleColorChannelImages[Color.RED]
multipleColorsImage[1::2,::2] = singleColorChannelImages[Color.GREEN_RIGHT]
multipleColorsImage[::2,1::2] = singleColorChannelImages[Color.GREEN_BOTTOM]
multipleColorsImage[1::2,1::2] = singleColorChannelImages[Color.BLUE]
return multipleColorsImage
def saveNpArray(fileName, npArray):
with open(f'{fileName}.npy', 'wb') as f:
np.save(f, npArray)
def rescaleRawImageForDenoiser(imageNpArray, minColor, maxColor):
imageNpArray = (imageNpArray - minColor) / (maxColor - minColor)
return imageNpArray
def updateExtremes(imageNpArray, minColor, maxColor):
colorRawImageVisibleMin = imageNpArray.min()
colorRawImageVisibleMax = imageNpArray.max()
if minColor is None or colorRawImageVisibleMin < minColor:
minColor = colorRawImageVisibleMin
if maxColor is None or colorRawImageVisibleMax > maxColor:
maxColor = colorRawImageVisibleMax
return minColor, maxColor
def print(*toPrint):
__builtin__.print(datetime.now(), *toPrint)

View File

@ -0,0 +1 @@
https://web.archive.org/web/20221206120232/http://loki.disi.unitn.it/RAISE/download.html

View File

@ -0,0 +1,36 @@
<?xml version="1.0" standalone="no"?>
<xournal creator="Xournal++ 1.1.3" fileversion="4">
<title>Xournal++ document - see https://github.com/xournalpp/xournalpp</title>
<page width="596.00000000" height="842.00000000">
<background type="pdf" domain="absolute" filename="/home/benjamin/Desktop/bens_folder/school/ens/asp/aria/internship/work/articles/RAISE - Dataset Download/RAISE - Dataset Download.pdf" pageno="1"/>
<layer>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">209.23466041 170.16524753 272.87140272 170.16524753</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">67.84724831 187.73136956 147.44272099 187.73136956</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">145.44602071 206.09488082 187.82813867 206.09488082</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">351.20014102 206.60629674 404.67127478 206.60629674</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">448.14781458 207.01377863 525.76805524 207.01377863</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">69.58344859 216.76610521 350.46387824 216.76610521</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">99.48150383 226.82860594 523.19781282 226.82860594</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">68.25197880 237.31064886 175.18747560 232.79241939</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">66.95125588 253.24242962 249.40513345 253.24242962</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">69.44076572 272.00324261 241.00171775 272.00324261</stroke>
<stroke tool="pen" ts="0" fn="" color="#000000ff" width="1.41000000" fill="255">426.12893486 306.37850858 526.44554244 306.37850858</stroke>
<stroke tool="pen" ts="0" fn="" color="#000000ff" width="1.41000000" fill="255">69.33653364 317.92071061 245.56329151 317.92071061</stroke>
<stroke tool="pen" ts="0" fn="" color="#000000ff" width="1.41000000" fill="255">216.85486069 303.92444591 416.12266138 303.92444591</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">141.34852569 362.89330303 190.57227117 362.89330303</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">451.03774440 363.78929545 526.54328468 363.78929545</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">70.35615550 374.66421493 194.74113662 374.66421493</stroke>
</layer>
</page>
<page width="596.00000000" height="842.00000000">
<background type="pdf" pageno="2"/>
<layer>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">106.18386100 288.58820502 166.94213826 288.58820502</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">94.90499059 307.01550284 339.74614562 307.01550284</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">68.47076072 383.46503965 143.10997398 383.46503965</stroke>
<stroke tool="pen" ts="0" fn="" color="#000000ff" width="1.41000000" fill="255">426.23082827 407.85830617 528.76097087 407.85830617</stroke>
<stroke tool="pen" ts="0" fn="" color="#000000ff" width="1.41000000" fill="255">68.82039449 418.89427409 252.92721945 418.89427409</stroke>
<stroke tool="pen" ts="0" fn="" color="#000000ff" width="1.41000000" fill="255">216.77977048 407.28395206 413.91231590 407.28395206</stroke>
</layer>
</page>
</xournal>

View File

@ -0,0 +1 @@
https://web.archive.org/web/20200525105705/http://loki.disi.unitn.it/RAISE/guide.html

View File

@ -0,0 +1,38 @@
<?xml version="1.0" standalone="no"?>
<xournal creator="Xournal++ 1.1.3" fileversion="4">
<title>Xournal++ document - see https://github.com/xournalpp/xournalpp</title>
<page width="596.00000000" height="842.00000000">
<background type="pdf" domain="absolute" filename="/home/benjamin/Desktop/bens_folder/school/ens/asp/aria/internship/work/articles/RAISE - Guide/RAISE - Guide.pdf" pageno="1"/>
<layer>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">233.11192536 169.38906698 251.39169540 169.38906698</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">281.41944020 169.52714125 384.28060942 169.52714125</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">326.23717482 198.58771710 526.73230387 198.58771710</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">66.04515208 664.95700209 177.93599752 664.95700209</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">128.26187283 749.29629583 160.74042147 749.29629583</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">212.74810264 751.71650486 224.49545597 751.71650486</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">125.84970017 610.99777394 141.78945999 611.65852192</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">218.29418523 611.58941600 273.56659714 611.58941600</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">164.83793538 254.38742347 208.20419346 256.21801960</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">90.45738031 151.10142548 105.46200908 153.50990668</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">147.18827406 153.20366473 187.94765844 153.20366473</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">350.91115262 327.36637107 371.31555577 327.36637107</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">258.04985385 327.48486457 306.06727716 327.48486457</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">173.36609666 327.19883392 211.06797238 327.19883392</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">120.00795704 325.86977161 148.26991700 327.46700341</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">79.93681784 325.99161264 90.79279853 325.53783850</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">207.76392409 282.01307702 217.25585007 282.01307702</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">213.04855519 507.91629645 295.16340740 507.91629645</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">262.78464119 525.23918352 320.66361934 525.23918352</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">191.28869656 524.26722961 213.48545410 525.56747104</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">95.99628635 523.98317081 103.67804890 523.98317081</stroke>
<stroke tool="pen" ts="0" fn="" color="#000000ff" width="1.41000000" fill="255">186.99154184 704.30285012 495.30272337 542.47143500</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">233.24578082 353.02428282 325.36284211 353.02428282</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">232.62648722 374.64463415 309.64141870 374.64463415</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">233.42372742 385.56543317 277.90078546 385.56543317</stroke>
</layer>
</page>
<page width="596.00000000" height="842.00000000">
<background type="pdf" pageno="2"/>
<layer/>
</page>
</xournal>

View File

@ -0,0 +1 @@
https://web.archive.org/web/20200716082639/http://loki.disi.unitn.it/RAISE/index.php

View File

@ -0,0 +1,44 @@
<?xml version="1.0" standalone="no"?>
<xournal creator="Xournal++ 1.1.3" fileversion="4">
<title>Xournal++ document - see https://github.com/xournalpp/xournalpp</title>
<page width="596.00000000" height="842.00000000">
<background type="pdf" domain="absolute" filename="/home/benjamin/Desktop/bens_folder/school/ens/asp/aria/internship/work/articles/RAISE - The Raw Images Dataset/RAISE - The Raw Images Dataset.pdf" pageno="1"/>
<layer>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">123.15265371 158.74004553 150.56837685 158.74004553</stroke>
<stroke tool="pen" ts="0" fn="" color="#ff00ffff" width="1.41000000" fill="255">50.99711168 174.70922653 59.33435520 174.10855697</stroke>
<text font="Sans" size="11.00000000" x="115.10869452" y="164.53185286" color="#00c0ffff" ts="0" fn="">?</text>
<stroke tool="pen" ts="0" fn="" color="#000000ff" width="1.41000000" fill="255">222.34901901 187.17025133 284.45976847 187.17025133</stroke>
<stroke tool="pen" ts="0" fn="" color="#000000ff" width="1.41000000" fill="255">60.57685064 200.81374108 97.25854724 200.81374108</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">89.68845448 209.98641919 277.68854996 209.98641919</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">59.34586104 221.64418197 280.94722085 221.64418197</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">58.88079157 231.72475855 100.04285985 231.72475855</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">332.76249628 425.19102949 466.95335299 425.19102949</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">308.67264006 159.78746275 386.98086553 159.78746275</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">163.05714371 466.15015914 278.62505702 466.15015914</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">95.26551531 476.61705687 204.00238357 476.61705687</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">59.42893447 486.01703788 92.08998198 486.01703788</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">142.10736098 486.95443050 184.36054545 486.95443050</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">103.94212905 494.92060019 137.13534029 494.92060019</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">121.32293303 505.47583443 278.98136804 505.47583443</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">58.85790495 514.68578146 226.80251643 514.68578146</stroke>
<text font="Sans" size="11.00000000" x="5.37004947" y="516.38161329" color="#00c0ffff" ts="0" fn="">to download?</text>
<text font="Sans" size="11.00000000" x="111.47574579" y="547.44355114" color="#00c0ffff" ts="0" fn="">?</text>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">105.87198390 250.33012178 241.24222994 250.33012178</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">217.56996752 259.52487360 281.00175425 259.52487360</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">169.11080069 268.96035180 278.89953087 268.96035180</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">57.45599524 279.82776538 280.17714169 279.82776538</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">57.61034444 290.42491674 215.22991380 290.42491674</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">159.39240801 299.27578563 282.58039586 299.27578563</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">59.27446020 307.57993942 285.76740013 307.57993942</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">59.09325361 319.10354034 277.69391444 319.10354034</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">60.70618714 329.64612232 88.11446941 329.64612232</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">203.89137661 367.26843276 283.96057728 367.26843276</stroke>
<stroke tool="highlighter" color="#00c0ff7f" width="8.50000000" fill="128">59.91988165 375.75851429 205.45026777 375.75851429</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">192.76820818 387.58468550 281.24622355 387.58468550</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">60.02270469 397.36719407 282.46994038 397.36719407</stroke>
<stroke tool="highlighter" color="#ffff007f" width="8.50000000" fill="128">58.97066012 406.28005276 93.93908865 406.28005276</stroke>
<stroke tool="pen" ts="0" fn="" color="#000000ff" width="1.41000000" fill="255">151.41171011 440.05734845 283.60213135 440.05734845</stroke>
<stroke tool="pen" ts="0" fn="" color="#000000ff" width="1.41000000" fill="255">59.46191997 451.09311835 114.04007102 451.09311835</stroke>
</layer>
</page>
</xournal>