python-opencv-图像颜色映射
图像颜色映射
图像颜色映射的实质是色彩通道的变换计算,即通过对图像的颜色通道值进行修改实现图像的颜色映射,说白了就是用新的bgr值替换掉旧的bgr值。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | import cv2 import numpy as np image = cv2.imread( "wuhuan.jpg" , 1 ) cv2.imshow( 'image' ,image) image_info = image.shape height = image_info[ 0 ] width = image_info[ 1 ] dst = np.zeros((height,width, 3 ),np.uint8) for i in range (height): for j in range (width): (b,g,r) = image[i,j] b = b * 1.5 if b> 255 : b = 255 dst[i,j] = (b,g,r) cv2.imshow( 'dst' , dst) #cv2.imshow("dst",dst) cv2.waitKey() |
上述代码中,我们遍历原图像的像素点,并将像素点的蓝色通道值进行增强,具体来说,就是将bgr中的b(蓝色通道)值在原基础上乘以1.5。当然,颜色通道值的范围为0~255,因此对于乘积结果我们需要做范围判断,对于超过255的结果需要置为255。
效果图:
上面图可以看出,蓝色被加强了
图像彩色映射
与图像颜色映射用于增强某个或某几个颜色通道值不同的是,图像彩色映射主要应用于灰度图,并利用色度图产生伪彩色图像。
例如,假设我们想在地图上显示不同地区的温度。我们可以把地图上不同地区的温度数据叠加为灰度图像。其中,温度较低的地方用较暗的区域表示,温度较高的地区用较亮的区域表示。这样就形成了一个温度数据图像。这样的图像是很有意义的,我们能通过颜色的变化更好地感知不同区域温度的高地。除此之外,还有高度、压力、密度、湿度等我们都可以通过将其转换为彩色数据图像以实现数据的可视化。
OpenCV中一共定义了12种色度图,可以应用于灰度图像,产生不同的伪彩色图像。
上图中显示了一个关于色度图的视觉表示及OpenCV中的对应数值,其中,颜色条从左到右分别表示灰度值从小到大,即越小的灰度值将呈现越靠左边的颜色。
OpenCV中使用applyColorMap(src,colormap,dst=None)函数来产生伪彩色图像
import cv2 image = cv2.imread("wuhuan.jpg",1) gray=cv2.cvtColor(image,cv2.COLOR_BGR2GRAY) cv2.imshow('gray',gray) colormap=cv2.applyColorMap(gray,cv2.COLORMAP_JET) #彩色映射--制作伪彩色图像 ''' 参数1 src:必选参数。表示输入的原图像数组,原图像必须为灰度图或者是CV_8UC1、CV_8UC的彩色图 参数2 colormap:必选参数。用于设置图像彩色映射的参考色度图 ''' cv2.imshow('color',colormap) cv2.waitKey()
效果图:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)