图像处理: 如何将 像素值 控制在 值域[0, 255]
来源:互联网 发布:淘宝隐形降权查询工具 编辑:程序博客网 时间:2024/05/29 18:37
概念
在做计算机视觉方向项目的时候,往往需要进行图像处理。但是在此过程中,常常会遇到 对 像素值 进行 变换计算 后,像素值 超出 值域区间 [0, 255]
的情况。再加上计算过程中各自 float型
, int型
, uint型
的问题都跳出来作乱,在初期做图像相关项目,深为此苦恼。后来自己写了一段万能代码模板,成功地解决了此类问题。
代码模板
# 将 像素值 低于 值域区间[0, 255] 的 像素点 置0pic *= (pic>0)# 将 像素值 高于 值域区间[0, 255] 的 像素点 置255pic = pic * (pic<=255) + 255 * (pic>255)# 将 dtype 转为图片的 dtype : uint8pic = pic.astype(np.uint8)
Note:
不可 提前 进行 类型转换(pic = pic.astype(np.uint8)
) 。因为从 长存储空间
转到 短存储空间
,会出现许多问题。从 有符号类型
转换为 无符号类型
,亦会出现各种 溢出 。
具体示例
代码
import numpy as nppic = np.random.uniform(-500, 500, size=[500, 500, 1])print pic[100:105, 100:105, 0]pic *= (pic>0)pic = pic * (pic<=255) + 255 * (pic>255)pic = pic.astype(np.uint8)print pic[100:105, 100:105, 0]import cv2cv2.imshow('', pic)cv2.waitKey(0)cv2.destroyAllWindows()
# 处理前的 图像像素点片段[[ 5.89746705 -43.89719852 328.09920151 -454.31665893 267.5631818 ] [ 33.86695611 22.49668227 238.23830524 -179.06889071 -403.42761205] [ 285.50896753 -120.39818227 -426.7793327 135.06240872 -105.65909158] [ 79.93494376 -377.71028993 -351.47462962 359.15593742 -296.08087807] [ 431.2010409 421.58265706 -116.30079321 379.04589982 -450.61887501]]# 处理后的 图像像素点片段[[ 5 0 255 0 255] [ 33 22 238 0 0] [255 0 0 135 0] [ 79 0 0 255 0] [255 255 0 255 0]]
效果图
阅读全文
3 0
- 图像处理: 如何将 像素值 控制在 值域[0, 255]
- opencv将Mat读入的图像的像素值打印在控制台上
- 不要相信windows下显示的图像,有欺骗性。对于float图像的处理有区别。二阶高斯微分,图像像素值在-2~2之间,可以显示,可能是自动进行了处理。而像素值在0~255之间的float图像,显示的却是全白。
- html5处理图像-像素处理
- OpenCV中读取图像像素值 - [图像处理\OpenCV编程]
- VTK图像处理之访问图像像素值
- VS2010,如何取得一幅图像中某个像素值得快捷方法and将某一点像素值改为指定值
- 图像处理------像素格效果
- 图像处理-像素点分析
- matlab图像处理(如何从像素中获得图像的信息)
- 图像处理------基于像素的图像混合
- PS中灰度图像如何查看像素值
- Delphi图像处理 -- 图像像素结构与图像数据转换
- c#图像处理入门(-bitmap类和图像像素值获取方法)
- c#图像处理入门的一个好方法-bitmap类和图像像素值获取方法
- c#图像处理入门(-bitmap类和图像像素值获取方法)
- c#图像处理入门(-bitmap类和图像像素值获取方法) .
- c#图像处理入门(-bitmap类和图像像素值获取方法)
- wordpress后台无法登录问题
- leetcode 回文数
- 如何去掉git diff 时的 \ no newline at end of file
- 使用unity3D实现全景图像查看器
- redis远程连接超时
- 图像处理: 如何将 像素值 控制在 值域[0, 255]
- MicroPython分析
- yii2.0-Ueditor百度编辑器
- Android ActionBar完全解析,使用官方推荐的最佳导航栏(上)
- Android系统启动流程与刷机包对应关系
- 实验3:栈和队列的基本操作实现及其应用——顺序队列和链队列
- 解决org.apache.ibatis.binding.BindingException: Type interface xxx is not known to the MapperRegistry
- 对IT很有深度认识的一个博客
- 《黑客与画家》简介