/// <summary>
/// 将图像缩小N倍
/// </summary>
/// <param name="source">原图数据</param>
/// <param name="height">原图高度</param>
/// <param name="width">原图宽度</param>
/// <param name="scale">缩小倍数</param>
/// <returns></returns>
public static ushort[] ImgNarrow(ushort[] source, int height, int width,int scale)
{
if (Convert.ToBoolean(height % scale) || Convert.ToBoolean(width % scale))
{
throw new Exception("高宽必须为" + scale + "的倍数");
}
ushort[] dest = new ushort[height * width / (scale * scale)];
int n = ;
for (int y = ; y < height; y = y + scale)
{
for (int x = ; x < width; x = x + scale)
{
int index = y * width + x;
int sum = ;
for (int i = ; i < scale; i++)
{
for (int j = ; j < scale; j++)
{
sum += source[index + i * width + j];
}
}
dest[n] = Convert.ToUInt16(sum / (scale * scale));
n++;
}
}
return dest;
}

原图是灰度数据,最终的目的是将图像缩小了N倍,然后取周围N*N个点的灰度平均值作为新图像的值,目前这个实现复杂度有点高,有更优解请评论回复

将一幅图像取平均值缩小N倍实现方法的更多相关文章

  1. CV 两幅图像配准

    http://www.cnblogs.com/Lemon-Li/p/3504717.html 图像配准算法一般可分为: 一.基于图像灰度统计特性配准算法:二.基于图像特征配准算法:三.基于图像理解的配 ...

  2. OpenCV,计算两幅图像的单应矩阵

    平面射影变换是关于其次3维矢量的一种线性变换,可以使用一个非奇异的$3 \times 3$矩阵H表示,$X' = HX$,射影变换也叫做单应(Homography).计算出两幅图像之间的单应矩阵H,那 ...

  3. OpenCv实现两幅图像的拼接

    直接贴上源码 来源:http://www.myexception.cn/image/1498389.html 实验效果 Left.jpg right.jpg ImageMatch.jpg #inclu ...

  4. 如何使用C#去灰度化一幅图像

    灰度化一幅图像就是将图像的色彩信息全部丢掉,将24位的位图信息,用8位来表示,灰度图共有256级灰度等级,也就是将24位位图的一点如(255,255,255)转换成255,所以R,G,B三个值所乘的系 ...

  5. PROCEDURE_监测系统_数据备份存储过程—备份原始数据,每十分钟一条,取平均值

    create or replace procedure proc_backup_originaldata(retCode out varchar2, -- 返回码                    ...

  6. Opencv利用ROI将一张图片叠加到另一幅图像的指定位置

    机器配置为:VS2013+opencv2.4.13+Win-64bit.===========================分割线========================本节将利用ROI将一 ...

  7. 【OpenCV学习】计算两幅图像的重叠区域

    问题描述:已知两幅图像Image1和Image2,计算出两幅图像的重叠区域,并在Image1和Image2标识出重叠区域. 算法思想: 若两幅图像存在重叠区域,则进行图像匹配后,会得到一张完整的全景图 ...

  8. C语言中将0到1000的浮点数用强制指针类型转换的方式生成一幅图像

    搞过计算机图像的人都知道,图像中的每一个像素通常为一个整型数,它可以分成4个无符号的char类型,以表示其RGBA四个分量.一幅图像可以看做是一个二维整型数组.这里我会生成一个float数组,其数组大 ...

  9. Opencv实现两幅图像融合

    实现两幅图像线性(不同系数下)的融合涉及到Opencv中两个关键的方法,addWeighted()和createTrackbar() addWeighted方法: 函数原型: void addWeig ...

随机推荐

  1. Windows下安装Redis服务

    说明:本文拷贝自https://jingyan.baidu.com/article/0f5fb099045b056d8334ea97.html Redis是有名的NoSql数据库,一般Linux都会默 ...

  2. eq

    <a class="s">1</a> <a class="s">2</a> <a class=" ...

  3. Transparent PageRoute in Flutter for displaying a (semi-) transparent page

    import 'package:flutter/widgets.dart'; class TransparentRoute extends PageRoute<void> { Transp ...

  4. Vue-Router路由 Vue-CLI脚手架和模块化开发 之 路由常用配置与路由嵌套

    vue-router路由常用配置 1.mode:配置路由模式,默认为hash,由于URL很丑,可以修改为history,但是需要服务端的支持: 以上一篇的博文为实例: 初始时url的显示: 使用mod ...

  5. ORA-00338

    dg环境从库报错:ORA-00338: log 5 of thread 1 is more recent than control fileORA-00312: online log 5 thread ...

  6. raphael参数说明

    大纲 :first-child { margin-top: 0px; } .markdown-preview:not([data-use-github-style]) h1, .markdown-pr ...

  7. world转.md

    下载并安装 Writage,下载地址:http://www.writage.com/

  8. 清北学堂北京大学冯哲神仙讲课day2

    今天讲基础数据结构 首先讲(二叉搜索树) 保证左儿子小于右儿子,那么对于根节点来说.大于根节点的放到右子树递归,小于根节点的放在左子树 相等的呢?某大佬(老师)这么说: 删除的前提是找这个点在哪: 如 ...

  9. 关于Tomcat启动时,长时间停在Initializing Spring root webApplicationContext处的原因

    1.大家肯定经常会遇到这样的问题,以前启动tomcat都不会出问题.现在一起动就会卡到Initializing Spring root webApplicationContext处,tomcat会报连 ...

  10. RocketMq 集群搭建 部署

    原文链接:https://blog.csdn.net/weixin_40533111/article/details/84451219 作者小太阳^_^,转载请注明出处,谢谢 前言本文基于最新版roc ...