使用applyColorMap可以对单个通道的图像进行伪彩色处理和热力图 OpenCV的定义了12种colormap常数,选择一个需要的即可 cv2.applyColorMap(heatmap_g, cv2.COLORMAP_JET) 图像可以使用addWeighted进行叠加处理 cv2.addWeighted(heatmap_img, alpha, merge_img, 1-alpha, 0, merge_img) # 将热度图覆盖到原图 def heatmap_overlay(image,heatmap): # 灰度化heatmap heatmap_g = heatmap.astype(np.uint8) # 热力图伪彩色 heatmap_color = cv2.applyColorMap(heatmap_g, cv2.COLORMAP_JET) # overlay热力图 merge_img = image.copy() heatmap_img = heatmap_color.copy() overlay = image.copy() alpha = 0.25 # 设置覆盖图片的透明度 #cv2.rectangle(overlay, (0, 0), (merge_img.shape[1], merge_img.shape[0]), (0, 0, 0), -1) # 设置蓝色为热度图基本色 cv2.addWeighted(overlay, alpha, …
Tag Archives: OpenCV
[Python]使用OpenCV实现图像和视频转换操作
将视频按FPS拆解成单张图片 使用cv2.VideoCapture cv2.VideoCapture(video_path) 计算FPS使用,注意部分压缩视频FPS存在丢帧情况,需要进行跳帧处理 fps = int(vidcap.get(cv2.CAP_PROP_FPS)) def video_split(): video_path = ‘test/video/video_01.mp4’ video_name = video_path[:-4] vidcap = cv2.VideoCapture(video_path) success,image = vidcap.read() fps = int(vidcap.get(cv2.CAP_PROP_FPS)) count = 0 while success: image = image_process(image) cv2.imwrite(“%s/%d.jpg” % (video_name, count), image) #if count % fps == 0: # cv2.imwrite(“%s/%d.jpg” % (video_name, int(count / fps)), image) print(‘Process %dth seconds: ‘ …
[Python]使用OpenCV进行轮廓检索
对遮罩层进行轮廓检索并合并到图像上 第一步使用高斯模糊GaussianBlur模糊边缘像素 第二步使用Canny侦测边界,丢弃部分散点 最后使用findContours找到外框 #对遮罩层进行轮廓检索并合并到图像上 def drawMaskContoursOverImage(image,mask): # convert colorspace gray = cv2.cvtColor(mask, cv2.COLOR_BGR2GRAY) #image = cv2.cvtColor(image, cv2.COLOR_GRAY2BGR) # 3*3 GaussianBlur # gray = cv2.GaussianBlur(gray, (3, 3), 0) # canny detect edge gray = cv2.Canny(gray, 100, 300) ret, thresh = cv2.threshold(gray, 127, 255, cv2.THRESH_BINARY) # binary是最后返回的二值图像 #findContours()第一个参数是源图像、第二个参数是轮廓检索模式,第三个参数是轮廓逼近方法 #输出是轮廓和层次结构,轮廓是图像中所有轮廓的python列表,每个单独的轮廓是对象边界点的(x,y)坐标的Numpy数组 binary, contours, hierarchy = cv2.findContours(thresh, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE) …