diff --git a/brick/processing/frangi3-nt.so b/brick/processing/frangi3-nt.so
new file mode 100644
index 0000000000000000000000000000000000000000..20ab3515fab53429af8e75d7e96b091e37a1e4e4
Binary files /dev/null and b/brick/processing/frangi3-nt.so differ
diff --git a/image_verification.py b/image_verification.py
new file mode 100644
index 0000000000000000000000000000000000000000..42430f4e89846869a5d2a6c1e12d73e999a60a0e
--- /dev/null
+++ b/image_verification.py
@@ -0,0 +1,158 @@
+# Copyright CNRS/Inria/UNS
+# Contributor(s): Eric Debreuve (since 2019), Morgane Nadal (2020)
+#
+# eric.debreuve@cnrs.fr
+#
+# This software is governed by the CeCILL  license under French law and
+# abiding by the rules of distribution of free software.  You can  use,
+# modify and/ or redistribute the software under the terms of the CeCILL
+# license as circulated by CEA, CNRS and INRIA at the following URL
+# "http://www.cecill.info".
+#
+# As a counterpart to the access to the source code and  rights to copy,
+# modify and redistribute granted by the license, users are provided only
+# with a limited warranty  and the software's author,  the holder of the
+# economic rights,  and the successive licensors  have only  limited
+# liability.
+#
+# In this respect, the user's attention is drawn to the risks associated
+# with loading,  using,  modifying and/or developing or reproducing the
+# software by the user in light of its specific status of free software,
+# that may mean  that it is complicated to manipulate,  and  that  also
+# therefore means  that it is reserved for developers  and  experienced
+# professionals having in-depth computer knowledge. Users are therefore
+# encouraged to load and test the software's suitability as regards their
+# requirements in conditions enabling the security of their systems and/or
+# data to be ensured and,  more generally, to use and operate it in the
+# same conditions as regards security.
+#
+# The fact that you are presently reading this means that you have had
+# knowledge of the CeCILL license and that you accept its terms.
+
+import sys as sy_
+from PySide2.QtWidgets import *
+import skimage.io as io_
+import matplotlib as mpl_
+import matplotlib.pyplot as pl_
+
+from brick.general.type import array_t
+
+mpl_.use('TkAgg')
+
+channel = 'G'
+data_path = 'data//DIO_6H_6_1.70bis_2.2_3.tif'
+image = io_.imread(data_path)
+
+
+class image_verification(QWidget):
+
+    def __init__(self, image: array_t, channel: str, parent=None):
+        super(image_verification, self).__init__(parent)
+        # Create widgets
+        # --Text
+        self.text0 = QLabel('The image input must not be constant.')
+        self.text1 = QLabel('The image has only one color channel.')
+        self.text2 = QLabel(f"The image has only 3 dimensions. However, a value for the 'channel' parameter"
+                            f"is specified: {channel}. Continue with this image?")
+        self.text3 = QLabel(f"The image has multiple color channels. The channel {channel} is specified"
+                            f" in the parameters. Continue with the resulting image?")
+        self.text4 = QLabel('The image has multiple color channels. Error in the value of the parameter channel.')
+        self.text5 = QLabel(f'The image dimensions are not correct: {image.ndim}, instead of 3 or 4.')
+        # --Buttons
+        self.button_quit = QPushButton("Quit and modify the parameters.")
+        self.button_continue = QPushButton("Continue.")
+        # Add button signal
+        self.button_continue.clicked.connect(self.Continue)
+        self.button_quit.clicked.connect(self.Quit)
+
+        if image is not None:
+            self.ImVerif(image, channel)
+
+    def Continue(self):
+        self.close()
+
+    def Quit(self):
+        sy_.exit(0)
+
+    def ImVerif(self, image: array_t, channel: str) -> array_t:
+        # The image must not be constant
+        if image.max() == image.min():
+            value_error = 'The image input must not be constant.'
+            print(value_error)
+
+            layout = QVBoxLayout()
+            layout.addWidget(self.text0)
+            layout.addWidget(self.button_quit)
+            self.setLayout(layout)
+
+        # Verification of the dimension of the image and its coherence with the parameters (channel)
+        elif image.ndim == 3:
+            print('The image has only one color channel.')
+            pl_.imshow(image[10, :, :])
+            pl_.show(block=True)
+
+            layout = QVBoxLayout()
+            layout.addWidget(self.text1)
+            layout.addWidget(self.button_continue)
+            self.setLayout(layout)
+
+            if channel is not None:
+                value_error = f'The image has only 3 dimensions. However, a value for the "channel" parameter is '
+                f'specified : {channel}. Give the channel the value None?'
+                print(value_error)
+
+                layout = QVBoxLayout()
+                layout.addWidget(self.text2)
+                layout.addWidget(self.button_continue)
+                layout.addWidget(self.button_quit)
+                self.setLayout(layout)
+
+        elif image.ndim == 4:
+            if channel == 'R' or channel == 'G' or channel == 'B':
+                # not changed into if --channel in 'RGB'-- because if channel='RG' => True.
+                value_error = f'The image has multiple color channels. The channel {channel} is specified in the ' \
+                              f'parameters. '
+                print(value_error)
+
+                image = image[:, :, :, 'RGB'.find(channel)]
+                pl_.imshow(image[10, :, :])
+                pl_.show(block=True)
+
+                layout = QVBoxLayout()
+                layout.addWidget(self.text3)
+                layout.addWidget(self.button_continue)
+                layout.addWidget(self.button_quit)
+                self.setLayout(layout)
+
+                # TODO: Viewing bug when channel = 'R' or 'B'
+                # The obtained image must not be constant
+                if image.max() == image.min():
+                    raise ValueError('The image input must not be constant.')
+
+                return image  # TODO: How to return the image ??
+
+            else:
+                print('The image has multiple color channels. Error in the value of the parameter channel.')
+
+                layout = QVBoxLayout()
+                layout.addWidget(self.text4)
+                layout.addWidget(self.button_quit)
+                self.setLayout(layout)
+
+        elif image.ndim != 4 and image.ndim != 3:
+            print(f'The image dimensions are not correct: {image.ndim}, instead of 3 or 4.')
+
+            layout = QVBoxLayout()
+            layout.addWidget(self.text5)
+            layout.addWidget(self.button_quit)
+            self.setLayout(layout)
+
+
+if __name__ == '__main__':
+    # Create the Qt Application
+    app = QApplication(sy_.argv)
+    # Create and show the form
+    verif = image_verification(image, channel)
+    verif.show()
+
+    sy_.exit(app.exec_())
\ No newline at end of file