多媒体指令(灰度像素最大值)

2023-10-27

如果不是处理的灰度图像,那么最大值也就没什么意思了。

彩色图也可以转成灰度图嘛。

虽然用了汇编,不过没有使用多媒体指令。

灰度图像的RGB都一样,没必要使用mmx寄存器了,直接对单个字节处理就行了。

获得最小值和获得最大值原理一样,只需改一个指令,把ja改为jna就行了。

Pix asmGetMaxGrayPix(BitmapData *data)
{
    //处理的是灰度图像,所以RGB值都一样
    //这里不需要用mmx指令也可以
    UINT Height=data->Height;
    UINT Width=data->Width;
    Pix* p=(Pix*)data->Scan0;
    UINT n=Height*Width-1;
    Pix Max;        //获得的最大像素
    __asm
    {
        push    esi;
        mov        ecx,n;
        mov        esi,[p];
        mov        eax,[esi];
        add        esi,4;
lp:
        mov        ebx,[esi];
        cmp        al,bl;    //比较al,bl,若al>bl,则al不变,否则,al=bl;
        ja        lp2;    //al若大于bl,调到lp2; //若要最小值调用这个: jna  lp2;
        mov        al,bl;        
lp2:
        add        esi,4;
        dec        ecx;
        jnz        lp;

        mov        ah,al;
        mov        bx,ax;
        shl        eax,16;
        mov        ax,bx;
        mov        [Max],eax;
        pop        esi;
    }
    return Max;
}

 

转载于:https://www.cnblogs.com/tiandsp/archive/2013/03/16/2963460.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

多媒体指令(灰度像素最大值) 的相关文章

  • 第六十六篇 三种常见的电路输出OC/OD和推挽

    1 OC输出 集电极开路输出 所谓OC就是open collector 字面理解就是collector极开路状态 既是集电极什么负载都不接 保持开路状态 在集电极开路输出OC结构电路中 类似上图 如果Q2断开的话 那么输出OC门的状态不可知
  • elementui中的tree组件相关操作集合

    目录 1 刷新指定节点 2 自定义过滤方法 3 新增子节点 4 编辑节点名 5 拖拽节点 6 某节点高亮 7 总结 8 组件整体的代码 1 刷新指定节点 node节点有一个loaded的属性 用来存储该节点是否展开过 刷新指定节点的思路 无
  • How to use appreciation and lie

    appreciation 1 理解 同情 体谅 I had no apprecation of the prombles you faced 我没有体谅到你当前所面临的困难 2 感谢 感谢 Please accept this gift i
  • PowerShell混淆相关

    相关技术文章 2016 05 26 利用机器学习检测恶意PowerShell https bbs pediy com thread 230002 htm 2018 11 09 FireEye 基于机器学习的模糊命令行检测 https www
  • git log 记录 patch

    如何打tag git tag a KPN FW v1 02 01 build01 m KPN FW v1 02 01 build01 git push origin tags git查看历史记录及修改内容 git whatchanged h
  • 《UNIX环境高级编程》学习笔记

    Unix环境高级编程 学习笔记 第一章 NUIX基础知识 1 5输入和输出 文件描述符通常是一个非负整数 用以标识一个特定进程正在访问的文件 运行一个新程序 所有shell会为其打开3个文件描述符 标准输入 输出 错误 不带缓冲的I O 标
  • HTML、CSS、JavaScript学习总结

    学习总结 HTML 网站开发的主要原则是 用标签元素HTML描述网页的内容结构 用CSS描述网页的排版布局 用JavaScript描述网页的事件处理 即鼠标或键盘在网页元素上的动作后的程序 HTML Hyper Text Mark up L
  • 爬取去哪儿酒店信息及评论

    爬取去哪儿酒店信息及评论 第一步 获取城市列表 import requests import json import codecs 去哪儿城市列表 url https touch qunar com h api hotel hotelcit
  • setPlainText

    QString toPlainText const void setPlainText const QString text setPlainText 顾名思义 是设置纯文本的 而setText 参数除了可以设置为纯文本之外 还可以设置为一
  • js随手笔记之一 存储之cookies

    概念 什么是cookie 全称 HTTP Cookie 最初是用于客户端存储回话信息的 cookie在性质上是绑定在特定的域名下 当设定一个cookie后再给创建它的域名发送请求时 都会包含这个cookie cookie的作用是什么 1 当
  • 数论整理之特殊数three:142857

    不重要的一篇文章 走马数 142857 1 142857 原数字 142857 2 285714 轮值 142857 3 428571 轮值 142857 4 571428 轮值 142857 5 714285 轮值 142857 6 85
  • vant中获取tab标签页的元素

    问题 vant框架中想要获取标签元素但又发现直接用 click和 change传id都无效 那应该怎么做呢 解决 在van tabs标签上顶一个点击事件 给van tab的name属性绑定一个唯一的值 然后将name作为参数传给该事件即可
  • 单例模式之懒汉式

    在上篇文章中 我们讲了单例模式中的饿汉式 今天接着来讲懒汉式 1 懒汉式单例模式的实现 public class LazySingleton private static LazySingleton instance null 让构造函数为
  • 前端八股文——javascript中Array⽅法总结

    Array方法 1 创建数组 1 1 Array from 1 2 Array of 方法 1 3 sort 排序函数原理 1 4 copyWithin 1 5 find 1 6 findIndex 2 对原数组有影响 2 1 push 2
  • Face++人工智能开放平台、百度AI、腾讯优图平台比较

    平台整体展示 百度AI平台展示了产品服务 解决方案 案例场景 资源中心 合作伙伴 AI加速器 资讯 社区板块 百度AI平台战略的两大核心是阿波罗Apollo平台和DuerOS对话式人工智能系统 阿波罗致力于汽车行业开发和自动驾驶领域的合作
  • Vue.js:Select--Option >下拉框绑定和取值

    遇到了这个解决了 所以记录一下 1 Vue js 2 https www iviewui com components select 完成vue js下拉框选择绑定与取值 实现效果图如下 template代码
  • Kafka 问答小结

    什么是消息中间件 消息中间件是基于队列与消息传递技术 在网络环境中为应用系统提供同步或异步 可靠消息传输的支撑性软件系统 消息中间件利用高效可靠的消息传递机制进行平台无关的数据交流 并基于数据通信来进行分布式系统的集成 通过提供消息传递和消
  • 数字化时代-21:入住CSDN 2个月进展报告

    摘要 入住CSDN2个月进展报告 积分 461 1311 等级 1级别 4 级 排名 20万 7万 访问量 8950 24739 2 每周文章变化 3 每周访问量变化 4 每周访问总重量变化 5 每周粉丝总计变化 6 总积分变化
  • 【MySQL】免安装版MySQL安装教程

    前言 近日 重新安装了一下本地的数据库 参考了很多博客才将MySQL给安装好 为了方便以后安装 便结合了网上博客的安装方法以及自己的一些经验写下这篇博客 也希望能给你们带来帮助 一 MySQL是什么 MySQL 是一个关系型数据库管理系统
  • docker配置seata分布式事务并注册至nacos

    Docker配置分布式事务Seata并注册到Nacos服务中心 Docker常用基础命令 docker ps 查询当前服务器的服务 docker images 查看服务下载的镜像 docker ps a 查看所有的服务 包含未开启的服务 d

随机推荐

  • 【Protobuf(四)】消息格式

    protobuf是一种平台语言无关的消息序列化协议 相比于传统的json xml 序列后的空间更小 但是无法自解释 需要结合额外的proto定义文件才能反序列化 当然这样也更安全 下面记录一下protobuf消息格式 protobuf消息序
  • 统计与分布之伯努利分布与二项分布

    目录 目录 前文列表 伯努利分布 二项分布 前文列表 计数原理 组合与排列 统计与分布之高斯分布 统计与分布之泊松分布 伯努利分布 伯努利分布 Bernoulli Distribution 是一种离散分布 又称为 0 1 分布 或 两点分布
  • 测试用例编写

    今天主要编写了办公模块下快速创建板块中的测试用例 快速创建提日志 多个功能点钟含有相同的功能 而且功能以模块的形式呈现 包含的功能较多 可以把该模块提取出来单独编写测试用例 这样就不用再每个功能点下重复编写 在快速创建日志中 日报 周报 月
  • The kdb Kernel Debugger

    The kdb Kernel Debugger Many readers may be wondering why the kernel does not have any more advanced debugging features
  • leetcode:62. 不同路径

    题目来源 leetcode 题目描述 题目解析 从暴力搜索到动态规划 暴力搜索 class Solution 机器人从 i j 走到 m n 一共有几种方法 int process int i int j int m int n if i
  • ASP + SQL Server聊天室设计实例

    ASP SQL Server聊天室设计实例 目 录 第一章 绪论 1 1 设计思想 1 2 开发工具和相关技术简介 第二章 聊天室总体分析和设计 2 1 聊天室的运行原理 2 2 聊天室的功能 2 3 聊天室的页面结构设计 2 4 聊天室的
  • hive之full outer join(全连接)使用方法

    目录 介绍 语法 例子 创建顾客表 customers 创建订单表 orders full outer join语句 left join union right join语句 介绍 full outer join结合了 LEFT JOIN
  • vue 指定元素滚动到页面可视区域

    使用场景 1 点击页面tab 或步骤条的某一步 使其对应元素滚动到页面可视区域 2 使遍历而来的list滚动到页面可视区域 实现 使用el scrollIntoView API实现 scrollIntoView 方法会滚动元素的父容器 使被
  • db2 replace函数的用法_高效的10个Pandas函数,你都用过吗?

    作者 Soner Y ld r m 来源 towardsdatascience 翻译 编辑 Python大数据分析 Pandas是python中最主要的数据分析库之一 它提供了非常多的函数 方法 可以高效地处理并分析数据 让pandas如此
  • 类模板 构造函数_C++ 类模板(学习笔记:第9章 02)

    类模板 1 类模板的作用 使用类模板使用户可以为类声明一种模式 使得类中的某些数据成员 某些成员函数的参数 某些成员函数的返回值 能取任意类型 包括基本类型的和用户自定义类型 类模板的声明 类模板 template lt 模板参数表 gt
  • oracle 查询随机数据结构,批量随机键值查询测试

    摘要 当数据量巨大时 使用大批量随机键值集获取对应记录集合 不仅仅考验数据库软件本身 更在于程序员对数据的理解 如何在硬件资源有限的情况下将性能发挥到极致 点击 批量随机键值查询测试 来乾学院一探究竟 本次测试主要针对集算器组表索引实现的批
  • 15个 Android 通用流行框架

    转载自 http www techug com 15 android framework biz MjM5OTA1MDUyMA mid 407358558 idx 2 sn b21877f23bf4063fa311185009c1f0b7
  • PLSQL显示优化

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 首选项 Tools gt Preferences 1 字体大小调整 高分屏看的清 2 设置关键字自动大写 3 设置关键字颜色 实现效果 转载于 https my oschi
  • kdj超卖_KDJ买卖口诀:“J值大于100逐步卖,J值接近负值逐步买”,从贫穷到富有原来如此简单...

    KDJ指标又叫随机指标 是一种相当新颖 实用的技术分析指标 指标构成 K线是快速确认线 数值在90以上就是超买 数值在10以下就是超卖 D线是慢速主干线 数值在80以上就是超买 数值在20一下就是超卖 J线是方向敏感线 当J值大于100 特
  • 编程小记—— C/C++中 x & -x 表示含义

    说明 看多了各种优秀看源代码的经常会遇到一些很常见的公式 本篇文章记录的 x x 就是其中的一种 含义 我们都知道 x 的值 其实就是在x的值的基础上进行按位取反 x 之后在增加1所得 也就是说 x x x x 1 x 为偶数 我们都知道
  • web信息收集

    title 信息收集 tags null categories 信息收集 null date 2021 03 20 18 40 54 keywords top img cover updated sticky description cop
  • 用 request请求对象 获取请求头里的 信息

    1 根据请求头名称获取一个值 String connection request getHeader connection System out println connection System out println getHeader
  • 8个重构技巧使得Python代码更Pythonic

    1 合并追加到列表声明 我们从一个简单的开始 不是声明一个空列表然后附加到它 而是直接用所有元素初始化列表 这缩短了代码并使意图更加明确 它的性能也稍微好一些 因为它避免了对 append 的函数调用 这同样适用于填充其他集合类型 如集合和
  • Angular4.0_开发准备

    启动Angular过程介绍 启动时加载了哪个页面 启动时加载了哪些脚本 这些脚本做了什么事 默认情况下是index对应的文件是启动时加载的页面 main ts是启动时的起点文件 main ts 核心模块提供的enableProdMode用来
  • 多媒体指令(灰度像素最大值)

    如果不是处理的灰度图像 那么最大值也就没什么意思了 彩色图也可以转成灰度图嘛 虽然用了汇编 不过没有使用多媒体指令 灰度图像的RGB都一样 没必要使用mmx寄存器了 直接对单个字节处理就行了 获得最小值和获得最大值原理一样 只需改一个指令