c# OpenCvSharp 16位转8位图

通过OpenCvSharp,将16位图转8位图,代码如:

cs 复制代码
        public static Mat Convert16BitTo8Bit(Mat src16, double max, double min)
        {
            if (src16.Depth() == 0)
            {
                //已经是8位了
                return src16;
            }

            Mat dst8 = Mat.Zeros(src16.Rows, src16.Cols, MatType.CV_8UC1);
            if (max <= min)
            {
                if (min == 255)
                {
                    max = 255;
                    min = 254;
                }
                else
                {
                    max = min + 1;
                }
            }
            double delt = 255.0 / (max - min);
            for (int i = 0; i < src16.Rows; i++)
            {
                for (int j = 0; j < src16.Cols; j++)
                {
                    ushort s = src16.At<ushort>(i, j);
                    if (s < min)
                    {
                        dst8.At<byte>(i, j) = 0;
                    }
                    else
                    {
                        byte d = (byte)((s - min) * delt);
                        dst8.At<byte>(i, j) = d;
                    }

                }
            }

            return dst8;
        }

参数说明:

Mat src16,16位图

double max,16位图的最大值

double min,16位图的最小值

相关推荐
兩尛7 分钟前
c++知识点2
开发语言·c++
fengfuyao98512 分钟前
海浪PM谱及波形的Matlab仿真实现
开发语言·matlab
xiaoye-duck31 分钟前
C++ string 底层原理深度解析 + 模拟实现(下)——面试 / 开发都适用
开发语言·c++·stl
Hx_Ma161 小时前
SpringMVC框架提供的转发和重定向
java·开发语言·servlet
期待のcode2 小时前
原子操作类LongAdder
java·开发语言
A_nanda3 小时前
c# MOdbus rto读写串口,如何不相互影响
算法·c#·多线程
lly2024063 小时前
C 语言中的结构体
开发语言
JAVA+C语言3 小时前
如何优化 Java 多主机通信的性能?
java·开发语言·php
青岑CTF4 小时前
攻防世界-Ics-05-胎教版wp
开发语言·安全·web安全·网络安全·php
Li emily5 小时前
如何通过外汇API平台快速实现实时数据接入?
开发语言·python·api·fastapi·美股