J'essaie de mettre en œuvre manuellement un opérateur sobel.Squaring introduit beaucoup de bruit lorsque vous faites l'opérateur Sobel en utilisant filter2D (OpenCV)
Pour une raison quelconque, les composants horizontaux et verticaux de l'opérateur semblent avoir de bons résultats, mais l'image combinée a beaucoup de bruit.
Je remarque quand je fais quelque chose comme (imgv ** 2) ** 0.5, qui introduit également une tonne de bruit, même si idéalement, je devrais récupérer approximativement la même image.
Est-ce que quelqu'un sait ce qui se passe ici? Suis-je censé combiner les images d'une manière différente?
Voici mon code en python:
import cv2
import numpy as np
sobelX = np.array([[1,0,-1],[2,0,-2],[1,0,-1]])
sobelY = sobelX.T
imgoriginal = cv2.imread("building.bmp")
imgv = cv2.filter2D(imgoriginal, -1, sobelY)
imgh = cv2.filter2D(imgoriginal, -1, sobelX)
imgboth = (imgv**2 + img**2)**0.5
Ceci est la sortie: