Home > Enterprise >  OpenCV reads invisible image
OpenCV reads invisible image

Time:09-22

I edited a simple png image with gimp, but it made transparent background black. So I tried undo'ing it, but nothing changed. Then I completely deleted all pixels (ctrl A and delete) - this made image completely blank (white). But then I read it with OpenCV (python, ubuntu 16.04) and I still could see that old picture!

This is simple code I used to read image. As you can see it is completely blank (white). enter image description here

But then I run the code and I can still see the old picture!

enter image description here

Here you can see - it is completely empty. I opened it with Firefox, Gimp, default ubuntu image viewer, windows photo viewer - same blank image. enter image description here enter image description here enter image description here

So I decided to try something and I drawed with Gimp on that picture:

enter image description here And I ran same code again: enter image description here

After undo'ing question mark image returned to same. I figured - it could be some software error - I rebooted - same. Then I copied 'nothing.png' to Win10. Same code - same result. Image is about 449kB size. Here it is: enter image description here

What the hell is going on here?

CodePudding user response:

GIMP didn't erase the RGB data, it just sets the alpha channel to 0.

That's enough... unless you ignore the alpha channel.

OpenCV ignores the alpha channel... it's just another channel, not special at all. OpenCV can read and write RGBA data, and you can use the alpha channel like any other channel. It's just that display with imshow ignores the alpha channel and shows you the RGB data.

  • Related