Judul: Berbagi Info Seputar Difference between Matrix Arithmetic in OpenCV and Numpy Full Update Terbaru
link: Difference between Matrix Arithmetic in OpenCV and Numpy
Artikel Terbaru Difference between Matrix Arithmetic in OpenCV and Numpy Update Terlengkap 2017
Hi,
This is a small post to show you an important difference in arithmetic operations in OpenCV and Numpy.
As an example, I take addition as operation.
As you know, images are loaded in OpenCV as "uint8" data. ie 8 bit data. So all the values in the matrix (or image) lie between 0 and 255.
So, even if you add or subtract two numbers, result lies between 0 and 255.
For eg, 255+1 ≠ 256 for 'uint8' data
So what is the answer in above case?
There lies the difference between OpenCV and Numpy. I will demonstrate it using Python terminal.
First create two datas of uint8 type, x = 255, y = 1
>>> x = np.array([255],np.uint8)
>>> y = np.array([1],np.uint8)
OpenCV
Now we add x and y using OpenCV function, cv2.add
>>> cv2.add(x,y)
array([[255]], dtype=uint8)
ie 255+1 = 255 in OpenCV. It is because arithmetic operations in OpenCV are clipped or saturated operations. ie , they clip values wrt data type. If uint8, it clips all values 0 and 255. So if you add two gray pixels, a = 127 and b = 129, you get c = 255, a white pixel, which is OK and necessary in Image Processing
Numpy
Now we add x and y in Numpy.
>>> x+y
array([0], dtype=uint8)
ie 255+1 = 0 in Numpy. It is because Numpy performs a modulo-256 operation. So 256 % 256 = 0.
But what it implies in image processing? If you add a value of '1' to a white pixel, you get a pure black pixel, which is completely unfavorable in image processing. If you add a = 127 and b = 128, again you get a black pixel.
So better stick to OpenCV functions for image arithmetic operations.
Regards,
ARK
Itulah sedikit Artikel Difference between Matrix Arithmetic in OpenCV and Numpy terbaru dari kami
Semoga artikel Difference between Matrix Arithmetic in OpenCV and Numpy yang saya posting kali ini, bisa memberi informasi untuk anda semua yang menyukai Fiber Android. jangan lupa baca juga artikel-artikel lain dari kami.
Terima kasih Anda baru saja membaca Artikel Tentang Difference between Matrix Arithmetic in OpenCV and Numpy