zoukankan      html  css  js  c++  java
  • 比特平面分层(一些基本的灰度变换函数)基本原理及Python实现

    1. 基本原理

    在灰度图中,像素值的范围为[0, 255],即共有256级灰度。在计算机中,我们使用8比特数来表示每一个像素值。因此可以提取出不同比特层面的灰度图。比特层面分层可用于图片压缩:只储存较高比特层(为什么使用较高层,而不是较低层?通过二进制转换,我们知道较高层在数值中的贡献更大);如使用高四位比特层表示原有的八层比特平面。

    2. 测试结果

    图源自skimage

    3. 代码

     1 def extract_bit_layer(input_image, layer_num):
     2     '''
     3     提取比特层
     4     :param input_image: 原图像
     5     :param layer_num: 提取层
     6     :return: 提取到的比特层
     7     '''
     8     input_image_cp = np.copy(input_image)  # 输入图片的副本
     9 
    10     if layer_num == 1:
    11         input_image_cp = np.where((input_image_cp >= 0) & (input_image_cp < 2), 255, 0)
    12     elif layer_num == 2:
    13         input_image_cp = np.where((input_image_cp >= 2) & (input_image_cp < 4), 255, 0)
    14     elif layer_num == 3:
    15         input_image_cp = np.where((input_image_cp >= 4) & (input_image_cp < 8), 255, 0)
    16     elif layer_num == 4:
    17         input_image_cp = np.where((input_image_cp >= 8) & (input_image_cp < 16), 255, 0)
    18     elif layer_num == 5:
    19         input_image_cp = np.where((input_image_cp >= 16) & (input_image_cp < 32), 255, 0)
    20     elif layer_num == 6:
    21         input_image_cp = np.where((input_image_cp >= 32) & (input_image_cp < 64), 255, 0)
    22     elif layer_num == 7:
    23         input_image_cp = np.where((input_image_cp >= 64) & (input_image_cp < 128), 255, 0)
    24     elif layer_num == 8:
    25         input_image_cp = np.where((input_image_cp >= 128) & (input_image_cp < 256), 255, 0)
    26     else:
    27         print("please enter the number of bit layers from 1 to 8")
    28 
    29     output_image = input_image_cp
    30 
    31     return output_image
  • 相关阅读:
    mysql完全卸载教程(图文详细)
    windows:安装django
    01 Java的NIO三大组件以及buffer的原理以及应用
    16 JDK8的concurrenthashmap的原理介绍
    07 Java源码字节码层面简单分析
    06 Java字节码的基础知识
    05 Java的class文件的组成介绍
    04 G1垃圾回收器的介绍以及垃圾回收调优的基础知识和简单案例
    03 JVM中垃圾回收算法以及典型的垃圾回收器
    02 Java的引用类型以及应用场景
  • 原文地址:https://www.cnblogs.com/iwuqing/p/11297280.html
Copyright © 2011-2022 走看看