[Python]使用OpenCV实现伪彩色和热力图

使用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, …

[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) …

PostgreSQL使用PL/SQL和游标实现按日期批量执行

现有的DWH系统的是按天创建数据表的,使得定期维护变得麻烦,例如每个月底需要将按当月产生的临时表archive。 方式1.批量生成SQL,按固定的日期值生成一堆SQL,SQL生成方法多样。但是需要确认全部sql是否正确。 方式2.编写PL/SQL function,使用游标方式批量执行。 drop function fun_datecursor(from_date text,to_date text,cond text); create or replace function fun_datecursor(from_date text,to_date text,cond text) returns text as $ declare cur_date refcursor; buffer text := ”; var_day date; begin open cur_date for execute ‘SELECT generate_series(”’|| from_date ||”’::date,”’|| to_date ||”’::date,”’|| cond ||”’)’; loop –开始循环 fetch cur_date into var_day; –将游标指定的值赋值给变量 if found then ————————————— …

PostgreSQL创建ReadOnly只读用户

PostgreSQL可以通过schema和table级别对数据表进行只读控制 一般会使用PostgreSQL创建只读用户,然后给予相应的只读权限方式实现 通过使用 — 创建readonly_user用户,密码为readonly_password create user readonly_user with encrypted password ‘readonly_password’; — 设置readonly_user用户为只读事务 alter user readonly_user set default_transaction_read_only=on; — 授予usage权限给到readonly_user用户 grant usage on schema “public” to readonly_user; — 将默认”public”schema下新建表的读取权限授予给readonly_user alter default privileges in schema “public” grant select on tables to readonly_user; — 授予select权限给到readonly_user用户 grant select on all tables in schema “public” to readonly_user; grant …

[VBA]Base64编码和Base64解码

VBA实现Base64编码和Base64解码,用于处理加密的URL非常方便。 VBA Base64 编码/加密函数: ‘VBA Base64 编码/加密函数: Function Base64Encode(StrA As String) As String ‘Base64 编码 On Error GoTo over ‘排错 Dim buf() As Byte, length As Long, mods As Long Dim Str() As Byte Dim i, kk As Integer kk = Len(StrA) – 1 ReDim Str(kk) For i = 0 To kk Str(i) = Asc(Mid(StrA, …

解决Python Error ‘TSaslClientTransport’ object has no attribute ‘trans’

解决Python Error ‘TSaslClientTransport’ object has no attribute ‘trans’ 原因应该是thrift和impyla包版本的问题 sudo pip uninstall thrift sudo pip uninstall impyla sudo pip install thrift==0.9.3 sudo pip install impyla==0.13.8 参考 http://community.cloudera.com/t5/Interactive-Short-cycle-SQL/Python-Error-TSaslClientTransport-object-has-no-attribute/m-p/58033