import numpy as np
def clip_linear_gray_scale(raw_img_data,low_fix_percent=0.001,up_fix_percent=0.999):
'''
灰度图动态拉伸。\n
raw_img_data:原始的图片数据,像素值取值单位是0-65535。\n
low_fix_percent:像素下限截止区间的百分比。\n
up_fix_percent:像素上限截止区间的百分比。\n
num_bar:直方图的数量
'''
img_max=np.max(raw_img_data)
img_min=np.min(raw_img_data)
img_range=img_max-img_min
if img_range>256:
num_bar=256
else:
num_bar=128
scale=img_range/num_bar
img_flat=np.reshape(raw_img_data,(-1,))
img_hist,bin=np.histogram(img_flat,num_bar)
low_id=1
up_id=255
hist_sum=np.sum(img_hist)
for i in range(1,num_bar+1):
bar_sum=np.sum(img_hist[0:i])
if bar_sum<low_fix_percent*hist_sum:
low_id=i
if bar_sum>up_fix_percent*hist_sum:
up_id=i
break
fix_min=img_min+scale*(low_id-1)
fix_max=img_min+scale*(up_id+1)
fix_img=np.clip(raw_img_data,fix_min,fix_max)
scale_img=(fix_img-fix_min)/(fix_max-fix_min)
dst_img=scale_img*255+0.5
dst_img=dst_img.astype(np.uint8)
return dst_img
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
这是一份图像灰度拉伸的代码实现,可用于红外照相机等原始图像的对比度调整。代码一共有两份,分别是matlab代码和python代码。拉伸算法基于直方图统计,被被封装成函数,可以灵活地调用。另外分别附有matlab和python版本的测试代码,方便用户熟悉如何使用。还附有一份测试数据,让客户观看算法的测试效果。
资源推荐
资源详情
资源评论
收起资源包目录
灰度拉伸.zip (6个子文件)
clip_linear_gray_scale.py 1KB
01.raw 640KB
clip_linear_gray_scale.m 1KB
01.bmp 321KB
test.m 367B
test.py 451B
共 6 条
- 1
资源评论
- zhouguangming1112024-01-25感谢大佬分享的资源给了我灵感,果断支持!感谢分享~
- xy2131530612024-03-09支持这个资源,内容详细,主要是能解决当下的问题,感谢大佬分享~
- niniawe2023-12-04感谢大佬分享的资源,对我启发很大,给了我新的灵感。
- 2301_772263552023-11-30发现一个超赞的资源,赶紧学习起来,大家一起进步,支持!
shifenglv
- 粉丝: 1353
- 资源: 74
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功