为了实现灰度(1通道)->热图(3通道)转换,我们首先将图像加载为灰度。默认情况下,OpenCV以3通道、8位BGR读取图像。
我们可以使用带cv2.IMREAD_GRAYSCALE参数的^{}直接将图像加载为灰度,或者使用^{}将BGR图像转换为带有cv2.COLOR_BGR2GRAY参数的灰度图像。加载图像后,我们将此灰度图像放入Matplotlib以获得热图图像。Matplotlib返回一个RGB格式,因此我们必须转换回Numpy格式并切换到BGR colorspace,以便与OpenCV一起使用。下面是一个使用科学的红外相机图像作为输入的例子。请参阅choosing color maps in Matplotlib以获取根据您所需的用例而提供的内置颜色图。在
这里有两种方法,一种使用Matplotlib,另一种只使用OpenCV
方法1:}
OpenCV
+^{为了实现灰度(1通道)} 直接将图像加载为灰度,或者使用^{} 将BGR图像转换为带有
->
热图(3通道)转换,我们首先将图像加载为灰度。默认情况下,OpenCV以3通道、8位BGR读取图像。 我们可以使用带cv2.IMREAD_GRAYSCALE
参数的^{cv2.COLOR_BGR2GRAY
参数的灰度图像。加载图像后,我们将此灰度图像放入Matplotlib以获得热图图像。Matplotlib返回一个RGB格式,因此我们必须转换回Numpy格式并切换到BGR colorspace,以便与OpenCV一起使用。下面是一个使用科学的红外相机图像作为输入的例子。请参阅choosing color maps in Matplotlib以获取根据您所需的用例而提供的内置颜色图。在输入图像:
输出热图图像:
代码
方法二:^{}
我们可以使用OpenCV内置的热图函数。以下是使用
cv2.COLORMAP_HOT
热图得到的结果代码
^{pr2}$注意:虽然OpenCV的内置实现既短又快,但我建议使用方法1,因为有更大的colormap选择。Matplotlib有hundreds of various colormaps,允许您create your own custom color maps,而OpenCV只有12个可供选择。以下是内置的OpenCV颜色贴图选择:
您需要将图像转换为适当的灰度表示。这可以通过几种方法实现,尤其是使用
imread(filename, cv2.IMREAD_GRAYSCALE)
。这会将图像的形状缩小为(54,960)
(提示,无三维)。在相关问题 更多 >
编程相关推荐