精华内容
下载资源
问答
  • 维数组降到一位数组
    2019-01-21 15:26:15
    let arr=[[1,3,4],2,[44,55],[3,4]];
    function Jw(arr) {
        return Array.prototype.concat.apply([],arr);
    }
    console.log(Jw(arr))
    
    更多相关内容
  • 遥感影像降位16位到8

    千次阅读 2019-01-19 21:42:03
     常用卫星影像基本上都是16影像,在某些应用场景下需要将16影像降到8影像,这样不仅减小了数据量,也便于后期处理。常用的降位方法先通过直方图进行百分比截断,然后进行拉伸包括,最简单的线性拉伸,分段...

    From: https://blog.csdn.net/shenshanxiaozhu/article/details/53224554

        常用卫星影像基本上都是16位影像,在某些应用场景下需要将16位影像降到8位影像,这样不仅减小了数据量,也便于后期处理。常用的降位方法先通过直方图进行百分比截断,然后进行拉伸包括,最简单的线性拉伸,分段拉伸以及对数变换和指数变换等。这里结合常用影像的特点使用百分比截断和指数(幂为0.7)变换将影像从16位降到8位。

        int imageprocessing::stretch_percent_16to8(const char *inFilename, const char *dstFilename)
    	{
    		GDALAllRegister();
    		//为了支持中文路径
    		CPLSetConfigOption("GDAL_FILENAME_IS_UTF8","NO");
    		int src_height = 0; 
    		int src_width = 0;
    		GDALDataset *poIn = (GDALDataset *)GDALOpen(inFilename,GA_ReadOnly);   //打开影像
    		//获取影像大小
    		src_width = poIn ->GetRasterXSize();
    		src_height = poIn ->GetRasterYSize();
    		//获取影像波段数
    		int InBands = poIn ->GetRasterCount();
    		//获取影像格式
    		GDALDataType eDataType = poIn -> GetRasterBand(1) -> GetRasterDataType();
    		//定义存储影像的空间参考数组
    		double adfInGeoTransform[6] = {0};
    		const char *pszWKT = NULL;
    		//获取影像空间参考
    		poIn ->GetGeoTransform(adfInGeoTransform);
    		pszWKT = poIn ->GetProjectionRef();
    		//创建文件
    		GDALDriver *poDriver = (GDALDriver *)GDALGetDriverByName("GTiff");
    		GDALDataset *poOutputDS = poDriver -> Create(dstFilename,src_width,src_height,InBands,GDT_Byte,NULL);
     
    		//设置拉伸后图像的空间参考以及地理坐标
    		poOutputDS -> SetGeoTransform(adfInGeoTransform);
    		poOutputDS -> SetProjection(pszWKT);
    		//读取影像
     
    		cout<<"16位影像降到8位影像处理..."<<endl;
    		for(int iBand = 0; iBand < InBands; iBand++ )
    		{
    			cout<<"正在处理第 "<<iBand + 1<<" 波段"<<endl;
    			//读取影像
    			uint16_t *srcData = (uint16_t *)malloc(sizeof(uint16_t) *src_width * src_height *1);
    			memset(srcData,0,sizeof(uint16_t ) * 1 *src_width * src_height);
    			int src_max = 0, src_min = 65500;
    			//读取多光谱影像到缓存
    			poIn ->GetRasterBand( iBand + 1) -> RasterIO( GF_Read, 0, 0, src_width, src_height , srcData + 0 * src_width * src_height,src_width,src_height, GDT_UInt16, 0, 0 );
    		//}
    		//统计最大值
    		for (int src_row = 0; src_row < src_height; src_row ++)
    		{
    			for (int src_col = 0; src_col < src_width; src_col++)
    			{
    				uint16_t src_temVal = *(srcData + src_row * src_width + src_col);
    				if (src_temVal > src_max)
    					src_max = src_temVal;
    				if(src_temVal < src_min )
    					src_min = src_temVal;
    			}
    		}
     
    		double *numb_pix = (double *)malloc(sizeof(double)*(src_max+1));      //存像素值直方图,即每个像素值的个数
    		memset(numb_pix,0,sizeof(double) * (src_max+1));
    		//                 -------  统计像素值直方图  ------------         //
     
    		for (int src_row = 0; src_row < src_height; src_row ++)
    		{
    			for (int src_col = 0; src_col < src_width; src_col++)
    			{
    				uint16_t src_temVal = *(srcData + src_row * src_width + src_col);
    				*(numb_pix + src_temVal) += 1;
    			}
    		}
     
    		double *frequency_val = (double *)malloc(sizeof(double)*(src_max+1));           //像素值出现的频率
    		memset(frequency_val,0.0,sizeof(double)*(src_max+1));
     
    		for (int val_i = 0; val_i <= src_max; val_i++)
    		{
    			*(frequency_val + val_i) = *(numb_pix + val_i) / double(src_width * src_height);
    		}
     
    		double *accumlt_frequency_val = (double*)malloc(sizeof(double)*(src_max+1));   //像素出现的累计频率
    		memset(accumlt_frequency_val, 0.0,sizeof(double)*(src_max+1));
     
    		for (int val_i = 0; val_i <= src_max; val_i ++)
    		{
    			for (int val_j = 0; val_j < val_i; val_j ++ )
    			{
    				*(accumlt_frequency_val + val_i) += *(frequency_val + val_j);
    			}
    		}
    		//统计像素两端截断值
    		int minVal = 0, maxVal = 0;
    		for (int val_i = 1; val_i < src_max; val_i++)
    		{
    			double acc_fre_temVal0 = *(frequency_val + 0);
    			double acc_fre_temVal = *(accumlt_frequency_val + val_i);
    			if((acc_fre_temVal - acc_fre_temVal0) > 0.0015 )
    			{	minVal = val_i;
    				break;	}
    		}
    		for (int val_i = src_max-1; val_i > 0; val_i--)
    		{
    			double acc_fre_temVal0 = *(accumlt_frequency_val + src_max);
    			double acc_fre_temVal = *(accumlt_frequency_val + val_i);
    			if(acc_fre_temVal < (acc_fre_temVal0 - 0.00012) )
    			{	maxVal = val_i;
    				break;	}
    		}
    		
    		for (int src_row = 0; src_row < src_height; src_row ++)
    		{
    			uint8_t *dstData = (uint8_t*)malloc(sizeof(uint8_t)*src_width);
    			memset(dstData, 0, sizeof(uint8_t)*src_width);
    			for (int src_col = 0; src_col < src_width; src_col++)
    			{
    				uint16_t src_temVal = *(srcData + src_row * src_width + src_col);
    				double stre_temVal = (src_temVal - minVal) / double(maxVal - minVal) ;
    				if(src_temVal < minVal)
    				{
    					*(dstData + src_col) = (src_temVal) *(20.0/double(minVal)) ;
    				}
    				else if(src_temVal > maxVal)
    				{	stre_temVal = (src_temVal - src_min) / double(src_max - src_min);
    					*(dstData + src_col) = 254;	}
    				else
    					*(dstData + src_col) = pow(stre_temVal,0.7) * 250;
     
    			}
    			poOutputDS->GetRasterBand(iBand + 1)->RasterIO(GF_Write, 0,src_row,src_width,1,dstData,src_width,1,GDT_Byte,0,0);
    			free(dstData);
    		}
     
    		free(numb_pix);
    		free(frequency_val);
    		free(accumlt_frequency_val);
    		free(srcData);
    		
    		}
    		GDALClose(poIn);
    		GDALClose(poOutputDS);
     
    		return 0;
    	}
    

     

    展开全文
  • win7旗舰版64位降32位的方法步骤

    千次阅读 2019-06-07 21:18:36
    win7旗舰版64位能降32位吗 win7旗舰版64位降32位的方法步骤 我们的生活中越来越离不开电脑,但在使用电脑的过程中总会遇到各种各样的问题。知识屋致力于给电脑小白朋友们介绍一些简单常用问题的解决方法,这次给...

    win7旗舰版64位能降到32位吗 win7旗舰版64位降32位的方法步骤 我们的生活中越来越离不开电脑,但在使用电脑的过程中总会遇到各种各样的问题。知识屋致力于给电脑小白朋友们介绍一些简单常用问题的解决方法,这次给大家介绍的是win7旗舰版64位降32位的方法步骤。

    旧时光美剧下载

    1、根据上面的教程制作好大白菜U盘启动盘,然后将下载的win7旗舰版32位iso镜像文件直接复制到U盘的GHO目录下;

    win7旗舰版64位能降到32位吗 win7旗舰版64位降32位的方法步骤

    2、在电脑上插入大白菜U盘,重启后不停按F12或F11或Esc等快捷键打开启动菜单,选择U盘选项回车,比如General UDisk 5.00,不支持这些启动键的电脑查看第二点设置U盘启动方法;

    win7旗舰版64位能降到32位吗 win7旗舰版64位降32位的方法步骤

    3、从U盘启动后进入到这个界面,通过方向键选择【02】选项回车,也可以直接按数字键2,启动pe系统,无法进入则选择【03】旧版PE系统;

    win7旗舰版64位能降到32位吗 win7旗舰版64位降32位的方法步骤

    4、进入到pe系统之后,不用分区的朋友直接执行第6步,如果需要重新分区,需备份所有数据,然后双击打开【DG分区工具】,右键点击硬盘,选择【快速分区】;

    win7旗舰版64位能降到32位吗 win7旗舰版64位降32位的方法步骤

    5、设置分区数目和分区的大小,一般C盘建议35G以上,如果是固态硬盘,勾选“对齐分区”执行4k对齐,点击确定,执行硬盘分区过程;

    win7旗舰版64位能降到32位吗 win7旗舰版64位降32位的方法步骤

    6、硬盘分区之后,打开【大白菜一键装机】,映像路径选择win7旗舰版32位系统iso压缩包,此时会自动提取gho文件,点击下拉框,选择gho文件;

    win7旗舰版64位能降到32位吗 win7旗舰版64位降32位的方法步骤

    7、接着点击“还原分区”,选择win7 32位旗舰版系统安装位置,一般是C盘,如果不是显示C盘,可以根据“卷标”或磁盘大小选择,点击确定;

    win7旗舰版64位能降到32位吗 win7旗舰版64位降32位的方法步骤

    8、此时弹出提示框,勾选“完成后重启”和“引导修复”,点击是执行后续过程;

    win7旗舰版64位能降到32位吗 win7旗舰版64位降32位的方法步骤

    9、转到这个界面,执行win7旗舰版32位安装到C盘的操作,这个过程需要5分钟左右,耐心等待即可;

    win7旗舰版64位能降到32位吗 win7旗舰版64位降32位的方法步骤

    10、操作完成后电脑会自动重启,此时拔出U盘,不拔除也可以,之后会自动重新启动进入这个界面,继续进行装win7旗舰版32位系统和系统配置过程;

    win7旗舰版64位能降到32位吗 win7旗舰版64位降32位的方法步骤

    11、整个安装过程5-10分钟,安装好之后重启进入全新win7旗舰版32位系统桌面。

    win7旗舰版64位能降到32位吗 win7旗舰版64位降32位的方法步骤

    以上就是为您介绍的win7旗舰版64位降32位的方法步骤,有兴趣的朋友可以试试以上方法,这些方法简单容易上手,希望对解决大家的问题有一定的帮助。

    展开全文
  • 0 引言单端反激式开关电源具有结构简单、输入输出电气隔离、电压升/范围宽、易于多路输出、可靠性高、造价低等优点,广泛应用于小功率场合。然而,由于漏感影响,反激变换器功率开关管关断时将引起电压尖峰,必须...
  • _': imgPath = "test.tif" outPath = "test3_8bit.jpg" src = rasterio.open(imgPath) img_array = np.dstack(list(src.read([3, 2, 1]))) img_array = exposure.rescale_intensity(img_array, in_range=(0, 2200)) ...

    16bit
    在这里插入图片描述
    8bit
    在这里插入图片描述

    from skimage import exposure, img_as_ubyte
    import gdalTools
    import numpy as np
    from PIL import Image as pilimg
    from pathlib import Path
    import warnings
    import rasterio
    
    
    if __name__ == '__main__':
        imgPath = "test.tif"
        outPath = "test3_8bit.jpg"
        src = rasterio.open(imgPath)
        img_array = np.dstack(list(src.read([3, 2, 1])))
    
        img_array = exposure.rescale_intensity(img_array, in_range=(0, 2200))
        with warnings.catch_warnings():
            warnings.simplefilter("ignore")
            img_array = img_as_ubyte(img_array)
        img_pil = pilimg.fromarray(img_array)
    
        with open(Path(outPath), 'w') as dst:
            img_pil.save(dst, format='JPEG', subsampling=0, quality=100)
    
        stats = {'mean': img_array.mean(axis=(0, 1)),
                 'std': img_array.std(axis=(0, 1))}
        print(stats)
    
    
    展开全文
  • c语言 键盘输入个三数,输出该数的逆序数。 c语言中键盘输入个三整数www.zhiqu.org 时间: 2020-12-08c语言中键盘输入个三数,输出该数的逆序数,可以参考以下的代码:#includeint main(){int x...
  • Python将维/多维数组转换为维 发表时间:2020-06-26 Python将维数组/多维数组转换为维 方法1:flatten 方法2:reshape+concatenate 方法3:sum() 方法4:列表推导式 方法5:operator 方法6:itertools 方法1:...
  • 题意:某人命名了种不数,这种数字必须满足右各位数字呈非下降关系,如 123,446。现在大家决定玩个游戏,指定个整数闭区间 [a,b],问这个区间内有多少个不数。 1≤a≤b≤2^31 - 1 题解:数dp。 ...
  • 通常电脑如果是内存4G以上的话,都会安装64系统,如果内存太小的话安装64系统可能会出现卡顿的情况,有win...、操作准备1、备份C盘以及桌面文件2、8G容量U盘,制作U盘PE启动盘、win10 64换32步骤如下1...
  • 某人命名了种不数,这种数字必须满足右各位数字呈非下降关系,如 123,446。 现在大家决定玩个游戏,指定个整数闭区间 [a,b],问这个区间内有多少个不数。 输入格式 输入包含多组测试数据。 每组...
  •  功能: 实现对个8bit数据(unsigned char类型)的指定位(例如第n)的置0或者置1操作,并保持其他不变。  函数原型:void RightLoopMove(unsigned char *p_data, unsigned char position, int flag)  函数...
  • 怎么将64的系统变成32的系统

    千次阅读 2021-07-27 07:49:10
    64技术是相对于32而言的,这个位数指的是CPU GPRs(General-Purpose Registers,通用寄存器)的数据宽度为64,64指令集就是运行64数据的指令,也就是说处理器次可以运行64bit数据。64bit处理器并非现在才...
  • DP-->不

    2020-09-10 09:55:23
    DP问题,通常用于求给定区间 [L, R] 中满足题目要求的数的个数。这个要求很简单。但是,这个区间[L,R] 的范围一般都是令人绝望的大。比如 1e9 都算良心的了,常规的都是 1e18 甚至更大。可见,对区间[L,R]中每个...
  • 奥地利微电子公司(Austria microsystems)发布了款具有最低功耗、...在 1Msps 转换速度下,AS1542 的功耗低于 2.4mA,在自动关断模式下,工作电流可至0.5μA以下。  16 个输入通道可通过软件配置成 16 通道单端或
  • 在轮流显示过程中,每元数管的点亮时间为 1~2ms,由于人的视觉暂留现象及发光极体的馀晖效应,儘管实际上各位数管并非同时点亮,但只要扫描的速度足够快,给人的印象就是组稳定的显示资 料,不会有闪烁感...
  • 极管钳保护电路是指由两个二极管反向串联组成的,次只能有个二极管导通,而另个处于截止状态,那么它的正反向压就会被钳制在二极管正向导通压0.5-0.7以下,从而起保护电路的目的。 钳电路的作用...
  • 在轮流显示过程中,每元数管的点亮时间为 1~2ms,由于人的视觉暂留现象及发光极体的馀晖效应,儘管实际上各位数管并非同时点亮,但只要扫描的速度足够快,给人的印象就是组稳定的显示资 料,不会有闪烁感...
  • 【单选题】目前各部门广泛使用的人事档案管理、财务管理等软件,按计算机应用分类,应属于【判断题】某企业的职工人数比上年增加5%,职工工资水平提高2%,则该企业职工工资总额比上年增长7.2%。()【单选题】个体行为矫正...
  • DATEL公司的DMS-40LCD-4/20S是种适用于4~20mA过程监控应用的4半LCD(液晶显示)显示表。它具有很低(2.9V)的环路压、190Ω(最大)环路阻抗。用DIP开关选择量程、补偿和小数点,可有几百个不同的输入/读出...
  • 其后面多余的数字应该舍去,只保留有效数字最末一位,这种修约(舍入)规则是"四舍六入五成双",也即"4舍6入5凑偶"这里"四"是指≤4 时舍去,"六"是指≥6时进上,"五"指的是根据5后面的数字来定,当5后有数时,舍5入1;...
  • 意法半导体(ST)日前推出款峰值脉冲功率高达600W、工作结温高达175℃的钳二极管。这款新产品是款采用尺寸紧凑的SMA封装的600W 10/1000微秒瞬变电压抑制二极管。新的SMA6J系列产品用于防止静电放电(ESD)和电涌...
  • 首先输出多路十六进制数据,...路,使4选1数据选择器的位宽8位降为了5位(4位16进制数和1位小数点)。除clock和reset信号之外,输入信号包括4个4位十六进制数据:hex3, hex2, hex1,hex0,和dp_in中的4位小数点。
  • 意法半导体(ST)推出款峰值脉冲功率高达600W、工作结温高达175℃的钳二极管。这款新产品是业内首款采用尺寸紧凑的SMA封装的600W 10/1000微秒瞬变电压抑制二极管。新的SMA6J系列产品用于防止静电放电(ESD)和...
  • MAX11612–MAX11617低功耗、12、多通道模数转换器(ADC)带有内部采样/保持(T/H)电路、电压基准、时钟和I2C兼容2线串行接口。该系列器件采用2.7V至3.6V (MAX11613/MAX11615/MAX11617)或者4.5V至5.5V (MAX11612/MAX...
  • 意法半导体推出款峰值脉冲功率高达600W、工作结温高达175℃的钳二极管。这款新产品是业内首款采用尺寸紧凑的SMA封装的600W 10/1000微秒瞬变电压抑制二极管。新的SMA6J系列产品用于防止静电放电(ESD)和电涌损坏...
  • 当入射基频激光(即1ω光,波长为800 nm,脉宽为278 fs)进入I类倍频β-BaB2O4(BBO)晶体后,随着晶体相失配量的增加,基频光的输出脉宽先后升,这种趋势可总结为“U”字形非线性变化;当相失配量为40 mm-1时...
  • 10位二进制数的扩和缩位二进制数的扩和缩,为保证结果能在全域范围被表示,使用最高对齐、左右移位的方法进行扩或缩。是以损失最低得到扩缩结果,因为最低的数值表达绝对值是最小的。对于扩,扩...
  • 而竞争方案DAC仅允许输出电压至20mV至30mV 高精度信号采集:快速建立时间(3µs) 高精度数据采集和控制系统概述: 该数据采集系统执行高速、18、高精度数据采集,基于Maxim的前沿、高精度、低功耗数据转换器。...
  • 二极管(五):钳

    2021-12-05 16:06:53
    ,就是将信号强行钳制电位上,抬高或降低信号的基准电位,但不改变原信号的波形。 、原理: 极管钳电路利用二极管的单向导通特性,即当二极管负极电压大于正极时,二极管截止;而当正极电压大于...
  • MAX11612–MAX11617低功耗、12、多通道模数转换器(ADC)带有内部采样/保持(T/H)电路、电压基准、时钟和I2C兼容2线串行接口。该系列器件采用2.7V至3.6V (MAX11613/MAX11615/MAX11617)或者4.5V至5.5V (MAX11612/MAX...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 94,693
精华内容 37,877
关键字:

从2位降到1位