faillooki.blogg.se

Cv2 palette swap
Cv2 palette swap





  1. #Cv2 palette swap software#
  2. #Cv2 palette swap code#

I recall -from an image processing class back in college - that you can reduce the number of unique colors in an image down to a few colors while keeping the important ones. In other words, BGR is the horse’s ass in OpenCV.A few weekends ago, I wanted to brush up on my clustering techniques. in Windows, when specifying color value using COLORREF they use the BGR format 0x00bbggrr.īGR was a choice made for historical reasons and now we have to live with it.

#Cv2 palette swap software#

The reason the early developers at OpenCV chose BGR color format is that back then BGR color format was popular among camera manufacturers and software providers. So, the major design feature of what is arguably the world’s most advanced transportation system was determined over two thousand years ago by the width of a Horse’s Ass! Why did they choose BGR color space in OpenCV ? The tunnel is slightly wider than the railroad track, and the railroad track is about as wide as two horses’ behinds. The railroad line from the factory had to run through a tunnel in the mountains. The engineers who designed the SRBs might have preferred to make them a bit fatter, but the SRBs had to be shipped by train from the factory to the launch site. The SRBs are made by Thiokol at their factory in Utah. These are solid rocket boosters, or SRBs. When we see a Space Shuttle sitting on its launch pad, there are two big booster rockets attached to the sides of the main fuel tank. There’s an interesting extension to the story about railroad gauges and horses’ behinds. Thus, we have the answer to the original question. So the next time you are handed a specification and wonder what horse’s ass came up with it, you may be exactly right, because the Imperial Roman war chariots were made just wide enough to accommodate the back ends of two war horses. Specifications and bureaucracies live forever. The United States standard railroad gauge of 4 feet, 8.5 inches derives from the original specification for an Imperial Roman war chariot. Since the chariots were made for (or by) Imperial Rome, they were all alike in the matter of wheel spacing. And the ruts in the roads? Roman war chariots first formed the initial ruts, which everyone else had to match for fear of destroying their wagon wheels.

cv2 palette swap

So who built those old rutted roads? The first long distance roads in Europe (and England) were built by Imperial Rome for their legions. Okay! Why did the wagons have that particular odd wheel spacing? Well, if they tried to use any other spacing, the wagon wheels would break on some of the old, long distance roads in England, because that’s the spacing of the wheel ruts. Why did “they” use that gauge then? Because the people who built the tramways used the same jigs and tools that they used for building wagons which used that wheel spacing. Why did the English build them like that? Because the first rail lines were built by the same people who built the pre-railroad tramways, and that’s the gauge they used. Why was that gauge used?īecause that’s the way they built them in England, and the US railroads were built by English expatriates. The US standard railroad gauge (width between the two rails) is 4 feet, 8.5 inches. when you try to display an image using matplotlib after reading it using imread in OpenCV, the result looks funny. It does not play well with libraries that use the standard RGB pixel format. OpenCV seems to have been built with the principle of maximum surprise in mind! And it all begins with the default BGR pixel format. While working with OpenCV, I have the docs permanently open in a browser tab.

#Cv2 palette swap code#

When I am writing Computer Vision code in MATLAB, I rarely refer to the documentation. OpenCV is a very useful library, but when it comes to the principle of least surprise, it is an unqualified disaster. But if the design is inconsistent with a user’s expectation, a simple act of opening a door can become a mental burden. Those are the expectations of a user of the door and when the designer of a door respects these expectations, a user can use the door without exerting any mental energy. When you see a door with a metal plate, you want to push it. When you see a handle on a door, you want to pull it. A good intuitive design makes the user not think. One of the elements of good design is the principle of least astonishment ( a.k.a principle of least surprise).







Cv2 palette swap