数字图像处理、拼接,图像静态滤镜(GPUImage/GPU加速) - Android

  图像滤镜处理的两种方式:RGB点乘运算;GPU的矩阵运算(效率更高)。图片处理中的计算:RGBA~利用自带的方法修改色调,饱和度,亮度来修改图片;矩阵~利用矩阵计算得到新的矩阵修改图片。

  几个图像像素数据处理过程中的几个知识点:像素格式,图像拉伸,YUV像素取值范围,色域。

  快手、美拍、Instagram、OPPO/ViVO 等。
  既然是图像处理,那么滤镜的操作就主要是:卷积、像素映射、坐标映射,反映到具体效果上,就是模糊锐化,覆盖层(贴纸等),RGB曲线调整,旋转缩放扭曲之类的。滤镜本质就是像素点的坐标和颜色的变化。
  滤镜原理:ios通过颜色矩阵(ColorMatrix)和坐标变换矩阵(Matrix)可以完美的做出上面的所说的效果。视频滤镜,都是对视频中的图像帧进行操作来改变光影和色彩。

  美颜有两步,一个是磨皮,一个是美白,要想正确美颜,所以还需要加上人脸识别技术和皮肤识别技术。

滤镜,图形变换处理核心是拿到纹理对象的rgb做算法处理.

【Android】自动瘦脸与眼睛放大美颜算法(shader)- https://blog.csdn.net/Taily_Duan/article/details/67636041

> 图像滤镜
  基本滤镜效果的实现:如果我们用ColorMatrix调整RGB三种颜色的比重,就可以实现诸如单色、黑白的效果。Lomo滤镜效果的实现:改变图像数值+遮罩。滤镜包括遮罩、浮雕、模糊、滤镜、渐变色、离散、透明等,并且实现了PATH的各种特效;

-- 美颜等滤镜功能Demo
Android实现图像处理滤镜功能特效实现(资源下载)- http://download.csdn.net/detail/jasonez/8788931
[图片处理] 99种滤镜效果 ImageFilterForAndroid-master- http://download.csdn.net/download/cleopard/8454813
ImageFilterForAndroid图像渲染- http://download.csdn.net/detail/heng615975867/6593591
图像处理滤镜/美化ImageFilterForAndroid- https://github.com/daizhenjun/ImageFilterForAndroid
android 图像处理滤镜系列合集- http://blog.csdn.net/jingwen3699/article/details/7770287
Android实战经验之图像处理及特效处理的集锦(总结版)- https://www.oschina.net/question/231733_44154
Android图片各种处理效果源码- http://download.csdn.net/download/lilidejing/7927579 
sangmingming/android-instagram-filter-- https://github.com/sangmingming/android-instagram-filter
imrunning/android-instagram-image-filter-- https://github.com/imrunning/android-instagram-image-filter
Instagram中最初的不到20个滤镜的代码与资源(InstagramFilters)- http://download.csdn.net/detail/oshunz/9335481
ImageFilterForAndroid-master- http://download.csdn.net/detail/cleopard/8454813
如何制作摄影类 app 中的滤镜- https://www.zhihu.com/question/20073281
如何制作摄影类 app 中的滤镜?- https://github.com/YuAo/YUCIHighPassSkinSmoothing
-- [Android] 图像各种处理系列文章合集- http://blog.csdn.net/eastmount/article/details/40689397
Android实战经验之图像处理及特效处理的集锦(总结版)- https://www.oschina.net/question/231733_44154
实时美颜滤镜(ColorMatrix)- https://github.com/Guikunzhi/BeautifyFaceDemo  
实时美颜滤镜(ColorMatrix)- https://github.com/BradLarson/GPUImage
Android视频编辑器,给本地视频加水印和美颜滤镜- http://blog.csdn.net/qqchenjian318/article/details/78274901
图像滤镜处理算法:灰度、黑白、底片、浮雕 - http://www.icodelogic.com/?p=575
This is a sobel filter on Android using OpenCL to accelerate.OPenCV,在Android上还实现了很多种并行化的算法,比如SHA-1、HDR、K-means、NL-means、SRAD等- https://github.com/WhiteIsClosing/Android-OpenCL-Sobel-Filter

Android平台美颜相机/Camera实时滤镜/视频编解码/影像后期/人脸技术探索-http://blog.csdn.net/martin20150405/article/details/54766660
Android平台美颜相机/Camera实时滤镜/视频编解码/影像后期/人脸技术探索-http://blog.csdn.net/Martin20150405/article/category/6274984
照片美妆---天天P图疯狂变脸特效算法研究- http://blog.csdn.net/trent1985/article/details/71446860
图像算法---磨皮算法研究汇总- http://blog.csdn.net/trent1985/article/details/50496969
人像美妆---妆容迁移算法研究(Makeup transfer)- http://blog.csdn.net/trent1985/article/details/70226779
图像处理(二十一)基于数据驱动的人脸卡通动画生成-Siggraph Asia 2014- http://blog.csdn.net/hjimce/article/details/47083321
-- 图像处理滤镜的话主要处理图片的三原色,并根据三原色进行运算。
android 图像处理滤镜系列合集-- http://blog.csdn.net/jingwen3699/article/details/7770287
图像滤镜艺术- http://blog.csdn.net/Trent1985/article/category/2644207

opencv,图像处理的第三方库很多。
数字图像处理研究- http://blog.csdn.net/Trent1985/article/category/1850555
图像处理,图像分割,特征提取,机器学习,模式识别,深度学习等- http://blog.csdn.net/real_myth?viewmode=contents
OpenGL实践- http://blog.csdn.net/wangkuifeng0118/article/category/1115152
OpenCV 3.1.0编译与添加扩展模块- http://blog.csdn.net/jia20003/article/details/54583431

 ImageMagik处理图片的功能很强大 vs PhotoShop。ImageMagick是一套功能强大、稳定而且开源的工具集和开发包,可以用来读、写和处理超过89种基本格式的图片文件,包括流行的TIFF、JPEG、GIF、PNG等格式。利用ImageMagick,你可以根据web应用程序的需要动态生成图片, 还可以对一个(或一组)图片进行改变大小、旋转、锐化、减色或增加特效等操作,并将操作的结果以相同格式或其它格式保存,对图片的操作,即可以通过命令行进行,也可以用C/C++、Perl、Java、PHP、Python或Ruby编程来完成。

-- GPUImage 图像处理和实时滤镜
美丽的滤镜背后都是数学和艺术在支撑。相片磨皮;基于GPU的图像处理和实时滤镜,鼎鼎大名的GPUImage
gpuimage滤镜- https://github.com/CyberAgent/android-gpuimage
 GPUImage的项目结构其实很简单,android版本就更是简陋,结构如下:
  1.一堆滤镜(shader以及配套设置参数的代码);
  2.FilterGroup(利用FBO进行同一副图像的多次处理);
  3.EGL管理类(主要用来做离屏渲染);
 虽然GPUImage的主要价值在那堆滤镜上,但是我们主要来分析后面两个,这是GPUImage的框架,而滤镜就像插件一样,想插就插:D,我们也可以依葫芦画瓢定制自己的滤镜。
  GPUImage是采用链式方法来处理画面,通过addTarget方法添加对象到链中,处理完一个target,就会吧上一个环节处理好的图像数据传递到下一个target处理,成为GPUImage处理链。
  GPU工作原理:CPU指定显示器工作,显示控制器根据CPU的控制到指定的地方去取数据和指令,目前的数据一般是从显存里取,如果显存里存不下,则从内存里取,内存也放不下,则从硬盘里取。
  滤镜处理的原理:就是把静态图片或者视频的每一帧进行图形变化后在显示到屏幕上,其本质就是像素点的坐标和颜色的变化。

  一个视频通信的基础架构可能涉及到采集(音视频采集)、前处理(例如噪声处理、人脸识别等)、音视频编解码、流媒体协议、系统架构(如数据库、文件系统)、CDN、播放控制(如音视频同步)和交互技术等。MediaCodec,MediaMuxer,MediaFormat等.

-- 滤镜在色彩处理中,通常使用以下三个角度来描述一个图像:
  色调——物体传播的颜色;饱和度——颜色的纯度,从0(灰)到100%(饱和)来进行描述;亮度——颜色的相对明暗程度;在Android 的 ColorMatrix 颜色矩阵中也封装了一些 API 来快速调整上面这三个颜色参数,而不用每次都去计算矩阵的值。

-- 美颜的实现的步骤是:https://www.2cto.com/kf/201604/498289.html
 1.用具有保边效果的滤波算法对图像进行模糊处理;
 2.用肤色检测算法保护非皮肤区域;
 3.将模糊后的图像和原图进行图像融合;
 4.对融合后的图像进行锐化处理;

 - 美颜和滤镜
  一般的思路是磨破+美白,即用类似双边滤波这样的边缘保持滤波器对肤色区域做平滑处理,然后做肤色的色调调节.
  根据RGB值识别皮肤部分,进行肤色调整,用具有保持边缘效果的滤波算法对图像进行模糊处理,用一些算法将模糊后的图像与原图进行融合,增加皮肤质感,此时的图片会有一些朦胧感,锐化可以强化边缘,让图像更加清晰。
  自动瘦脸与眼睛放大可以算作图像局部扭曲算法的一个应用,其参考文献可以追溯至1993年的一篇博士论文- http://www.gson.org/thesis/warping-thesis.pdf.
  在1979年Lee发表的论文《Lee Filter Digital Image Enhancement and Noise Filtering by Use of Local Statistics》中,提出了基于局部信息去除加性噪音、乘性噪音及加性乘性混合噪音的方法,经过仔细的学习和编码,发现其去除加性噪音的方法效果非常好,具有现在一些EPF算法类似的边缘保留功能,并且其运算并不复杂,可以应用到类似于磨皮这种项目中。http://imagej.net/Integral_Image_Filters. 皮肤识别有很多算法.

 - 美白算法: 借用色彩平衡算法;使用logarithmic Curve;使用图层混合.。对人脸进行美白、磨皮、瘦脸和大眼等美化功能;磨皮算法 实时滤镜。
  Smooth:皮肤平滑度,越高皮肤除;
  Skin Color:皮肤.色,low为做红.处理;
  Sharp:瘦脸&大眼程度,值越高表示程度越大。

-- OpenGL ES程序处理图片的步骤:
1.初始化OpenGL ES 环境,编译、链接顶点着色器和片元着色器。
2.缓存顶点、纹理坐标数据,传送图像数据到GPU
3.绘制图元到特定的帧缓存;
4.在帧缓存去除绘制的图像。

> 图像处理,图像像素处理,图像处理技术
【数字图像处理的基本原理和常用方法】- https://blog.csdn.net/xCnhYKoHj3eK/article/details/80103618
  图形和图像信息。数字图像处理作为一门学科大约形成于 20 世纪 60 年代初期。早期的图像处理的目的是改善图像的质量,它以人为对象,以改善人的视觉效果为目的。图像处理中,输入的是质量低的图像,输出的是改善质量后的图像,常用的图像处理方法有图像增强、复原、编码、压缩、图像分类(识别)、图像变换等。
  图像处理技术在娱乐中的应用主要包括:电影特效制作、电脑电子游戏、数码相机、视频播放、数字电视等。
  Android对于图片的处理,最常使用到的数据结构是位图——Bitmap,它包含了一张图片所有的数据。整个图片都是由点阵和颜色值组成的,所谓点阵就是一个包含像素的矩阵,每一个元素对应着图片的一个像素。而颜色值—ARGB,分别对应着透明度、红、绿、蓝这四个通道分量,他们共同决定了每个像素点显示的颜色。上图显示的就是色光三原色。

-- 像素处理getPixel getPixels setPixel setPixels
Android Bitmap 加载与像素操作- https://blog.csdn.net/jia20003/article/details/46723903
Android图像处理整理- http://blog.csdn.net/luzhenyuxfcy/article/details/49427781

-- 开源图像库Skia: Skia 是完整的2D图像库,Google 一个底层的图形、图像、动画、 SVG 、文本/RGB(8byte – 32byte)编码(jpeg, png) 和解码功能等多方面的图形库,是 android 中图形系统的引擎。
Android图片解码流程:
 1) APP:BitmapDecode.Java
 2) API:BitmapFactory.java(static image)、Movie.java(dynamic image)
 3) JNI:BitmapFactory.cpp(static image)、Movie.cpp(dynamic image)
 4) C Native Service(Skia):SkImageDecoder.cpp(static image)、SkMovie.cpp(dynamic image)
  skia 源码解析 http://www.eoeandroid.com/thread-27841-1-1.html .libskia
  使用系统自带libjpeg时问题 http://stackoverflow.com/questions/5208817/failing-to-link-against-libjpeg-so-in-jni-ndk-shared-library .libjpeg是个跨平台的开源库.

Skia主要使用的第三方库:Zlib、Jpeglib、Pnglib、giflib、fpdfemb(处理pdf文档);
Skia编译及调用 Android? Skia调用OpenGL或OpenGL ES?

--图片绘制,PorterDuffXfermode,这是CoorChice-https://github.com/chenBingX/CoorChiceLibOne/blob/448cf36e0b33fb667cb4fd5a8d8db2651bf0647e/app/src/main/java/com/chenbing/coorchicelibone/Views/PorterDuffXDemoActivity.java

  YUV是被欧洲电视系统索采用的一种颜色编码方法。采用YUV色彩空间的重要性是它的亮度信号Y和色度信号U、V是分离的。如果只有Y信号分量而没有U、V分量,那么这样表示的图像就是黑白灰度图像,彩色电视采用YUV空间正式为了用亮度信号Y解决彩色电视机与黑白电视机的兼容问题,使黑白电视机也能接收彩色电视信号。
  YUV主要用于优化彩色视频信号的传输,使其向后相容老式黑白电视。与RGB视频信号传输相比,它最大的优点在于只需占用极少的频宽。

-- 贴图
android ndk调用OpenGL 实现纹理贴图Texture- http://blog.csdn.net/chrisfxs/article/details/34359265
android ndk调用OpenGL 实现纹理贴图Texture- http://download.csdn.NET/detail/chrisfxs/7547637

-- 图片分片,拼图游戏可以用到
【Android图像处理】将一张图片切成许多碎片- http://blog.csdn.net/qq_32353771/article/details/53215322
[Android] Android中将一个图片切割成多个图片- http://blog.csdn.net/arui319/article/details/7470193

-- android拼接多张bitmap图片- http://blog.csdn.net/ajun495175289/article/details/18091683
/**
* 横向拼接
* <功能详细描述>
* @param first
* @param second
* @return 
*/
private Bitmap add2Bitmap(Bitmap first, Bitmap second) {
  int width = first.getWidth() + second.getWidth();
  int height = Math.max(first.getHeight(), second.getHeight());
  Bitmap result = Bitmap.createBitmap(width, height, Config.ARGB_8888);
  Canvas canvas = new Canvas(result);
  canvas.drawBitmap(first, 0, 0, null);
  canvas.drawBitmap(second, first.getWidth(), 0, null);
  return result;
}

/**
* 纵向拼接
* <功能详细描述>
* @param first
* @param second
* @return 
*/
private Bitmap addBitmap(Bitmap first, Bitmap second) {
  int width = Math.max(first.getWidth(),second.getWidth());
  int height = first.getHeight() + second.getHeight();
  Bitmap result = Bitmap.createBitmap(width, height, Config.ARGB_8888);
  Canvas canvas = new Canvas(result);
  canvas.drawBitmap(first, 0, 0, null);
  canvas.drawBitmap(second, first.getHeight(), 0, null);
  return result;
}

-- 图片倒影,其原理基本上就是将原图倒置,画在画布上,然后加上一个半透明的蒙版
public static Bitmap createReflectedImage(Bitmap originalImage)  {  
        int width = originalImage.getWidth();  
        int height = originalImage.getHeight();  
        Matrix matrix = new Matrix();  
        // 实现图片翻转90度  
        matrix.preScale(1, -1);  
        // 创建倒影图片(是原始图片的一半大小)  
        Bitmap reflectionImage = Bitmap.createBitmap(originalImage, 0, height / 2, width, height / 2, matrix, false);  
        // 创建总图片(原图片 + 倒影图片)  
        Bitmap finalReflection = Bitmap.createBitmap(width, (height + height / 2), Config.ARGB_8888);  
        // 创建画布  
        Canvas canvas = new Canvas(finalReflection);  
        canvas.drawBitmap(originalImage, 0, 0, null);  
        //把倒影图片画到画布上  
        canvas.drawBitmap(reflectionImage, 0, height + 1, null);  
        Paint shaderPaint = new Paint();  
        //创建线性渐变LinearGradient对象  
        LinearGradient shader = new LinearGradient(0, originalImage.getHeight(), 0, finalReflection.getHeight() + 1, 0x70ffffff,  
                0x00ffffff, TileMode.MIRROR);  
        shaderPaint.setShader(shader);  
        shaderPaint.setXfermode(new PorterDuffXfermode(Mode.DST_IN));  
        //画布画出反转图片大小区域,然后把渐变效果加到其中,就出现了图片的倒影效果。  
        canvas.drawRect(0, height + 1, width, finalReflection.getHeight(), shaderPaint);  
        return finalReflection;  
 }
  
-- 图片阴影,在一个圆角矩形的图片四周加上阴影效果,在原图四边加上矩形的阴影,然后在四个圆角的地方画扇形阴影来实现。
Android图片添加阴影效果的两种方式- http://blog.csdn.net/u011421608/article/details/51923812
public static Bitmap createShadowBitmap(Bitmap orignalBitmap,  
            int shadowMargin, int iconCornerRadius) {  
        int w = orignalBitmap.getWidth();  
        int h = orignalBitmap.getHeight();  
        Bitmap shadowBitmap = Bitmap.createBitmap(w + shadowMargin * 2, h  
                + shadowMargin * 2, Config.ARGB_8888);  
        int width = shadowBitmap.getWidth();  
        int height = shadowBitmap.getHeight();  
        Canvas canvas = new Canvas(shadowBitmap);  
        canvas.drawBitmap(orignalBitmap, shadowMargin, shadowMargin, null);  
        Paint paint = new Paint();  
        paint.setXfermode(new PorterDuffXfermode(Mode.DST_OVER));  
        int radius = shadowMargin + iconCornerRadius;  
        // 四个边的阴影效果,采用线性阴影,宽度等于阴影边距+圆角半径  
        LinearGradient leftGradient = new LinearGradient(radius, 0, 0, 0,  
                0x7F000000, 0x00000000, TileMode.CLAMP);  
        LinearGradient rightGradient = new LinearGradient(width - radius, 0,  
                width, 0, 0x7F000000, 0x00000000, TileMode.CLAMP);  
        LinearGradient topGradient = new LinearGradient(0, radius, 0, 0,  
                0x7F000000, 0x00000000, TileMode.CLAMP);  
        LinearGradient bottomGradient = new LinearGradient(0, height - radius,  
                0, height, 0x7F000000, 0x00000000, TileMode.CLAMP);  
        paint.setShader(leftGradient);  
        canvas.drawRect(0, radius, radius, height - radius, paint);  
        paint.setShader(rightGradient);  
        canvas.drawRect(width - radius, radius, width, height - radius, paint);  
        paint.setShader(topGradient);  
        canvas.drawRect(radius, 0, width - radius, radius, paint);  
        paint.setShader(bottomGradient);  
        canvas.drawRect(radius, height - radius, width - radius, height, paint);  
        // 四个角的阴影效果,采用圆形阴影,半径等于阴影边距+圆角半径  
        RadialGradient topLeftCornerGradient = new RadialGradient(radius,  
                radius, radius, 0x7F000000, 0x00000000, TileMode.CLAMP);  
        RadialGradient topRightCornerGradient = new RadialGradient(width  
                - radius, radius, radius, 0x7F000000, 0x00000000,  
                TileMode.CLAMP);  
        RadialGradient bottomLeftCornerGradient = new RadialGradient(radius,  
                height - radius, radius, 0x7F000000, 0x00000000, TileMode.CLAMP);  
        RadialGradient bottomRightCornerGradient = new RadialGradient(width  
                - radius, height - radius, radius, 0x7F000000, 0x00000000,  
                TileMode.CLAMP);  
        // 画四个角,就是画四个圆心角为90度的扇形,drawArc函数第一个参数为圆弧所在圆的的外接矩形,第二个参数为起始角度,第三个参数为扇形顺时针滑过的角度,第四个参数如果为true时,在绘制圆弧时将圆心包括在内(用来画扇形),第五个参数为画笔  
        paint.setShader(topLeftCornerGradient);  
        canvas.drawArc(new RectF(0, 0, radius * 2, radius * 2), 180, 90, true,  
                paint);  
        paint.setShader(topRightCornerGradient);  
        canvas.drawArc(new RectF(width - radius * 2, 0, width, radius * 2),  
                270, 90, true, paint);  
        paint.setShader(bottomLeftCornerGradient);  
        canvas.drawArc(new RectF(0, height - radius * 2, radius * 2, height),  
                90, 90, true, paint);  
        paint.setShader(bottomRightCornerGradient);  
        canvas.drawArc(new RectF(width - radius * 2, height - radius * 2,  
                width, height), 0, 90, true, paint);  
        return shadowBitmap;  
}

  • 1
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
数据来源:中经数据库 主要指标110多个(全部都是纯粹的 市辖区 指标),大致是: GDP GDP增速 第一产业增加值占GDP比重 第二产业增加值占GDP比重 第三产业增加值占GDP比重 人均GDP 社会消费品零售总额 固定资产投资(不含农户) 新设外商投资企业数_外商直接投资 实际利用外资金额(美元) 一般公共预算收入 一般公共预算支出 一般公共预算支出_教育 一般公共预算支出_科学技术 金融机构人民币各项存款余额_个人储蓄存款 金融机构人民币各项存款余额 金融机构人民币各项贷款余额 规模以上工业企业单位数 规模以上工业企业单位数_内资企业 规模以上工业企业单位数_港澳台商投资企业 规模以上工业企业单位数_外商投资企业 规模以上工业总产值 规模以上工业总产值_内资企业 规模以上工业总产值_港澳台商投资企业 规模以上工业总产值_外商投资企业 规模以上工业企业流动资产合计 规模以上工业企业固定资产合计 规模以上工业企业利润总额 规模以上工业企业应交增值税 规模以上工业企业主营业务税金及附加 户籍人口数 年均户籍人口数 户籍人口自然增长率 第一产业就业人员占全部城镇单位就业人员比重 第二产业就业人员占全部城镇单位就业人员比重 第三产业就业人员占全部城镇单位就业人员比重 城镇非私营单位就业人员数 城镇非私营单位就业人员数_第一产业 城镇非私营单位就业人员数_第二产业 城镇非私营单位就业人员数_第三产业 城镇非私营单位就业人员数_农、林、牧、渔业 城镇非私营单位就业人员数_采矿业 城镇非私营单位就业人员数_制造业 城镇非私营单位就业人员数_电力、热力、燃气及水生产和供应业 城镇非私营单位就业人员数_建筑业 城镇非私营单位就业人员数_批发和零售业 城镇非私营单位就业人员数_交通运输、仓储和邮政业 城镇非私营单位就业人员数_住宿和餐饮业 城镇非私营单位就业人员数_信息传输、软件和信息技术服务业 城镇非私营单位就业人员数_金融业 城镇非私营单位就业人员数_房地产业 城镇非私营单位就业人员数_租赁和商务服务业 城镇非私营单位就业人员数_科学研究和技术服务业 城镇非私营单位就业人员数_水利、环境和公共设施管理业 城镇非私营单位就业人员数_居民服务、修理和其他服务业 城镇非私营单位就业人员数_教育 城镇非私营单位就业人员数_卫生和社会工作 城镇非私营单位就业人员数_文化、体育和娱乐业 城镇非私营单位就业人员数_公共管理、社会保障和社会组织 城镇非私营单位在岗职工平均人数 城镇就业人员数_私营企业和个体 城镇非私营单位在岗职工工资总额 城镇非私营单位在岗职工平均工资 城镇登记失业人员数 建成区面积 建设用地面积 建设用地面积_居住用地 液化石油气供气总量 液化石油气供气总量_居民家庭 人工煤气、天然气供气总量 人工煤气、天然气供气总量_居民家庭 液化石油气用气人口 人工煤气、天然气用气人口 城市公共汽电车运营车辆数 城市出租汽车运营车辆数 城市公共汽电车客运总量 道路面积 排水管道长度 建成区绿化覆盖面积 建成区绿化覆盖率 绿地面积 公园绿地面积 维护建设资金支出 土地面积 生活用水供水量 供水总量 全社会用电量 城乡居民生活用电量 工业生产用电量 房地产开发投资 房地产开发投资_住宅 限额以上批发和零售业法人单位数 限额以上批发和零售业商品销售总额 普通中学学校数 中等职业教育学校数 普通小学学校数 普通高等学校专任教师数 普通中学专任教师数 中等职业教育专任教师数 普通小学专任教师数 普通高等学校在校生数 普通中学在校生数 中等职业教育在校生数 普通小学在校生数 电视节目综合人口覆盖率 公共图书馆总藏量_图书 医疗卫生机构数_医院和卫生院 卫生人员数_执业(助理)医师 医疗卫生机构床位数_医院和卫生院 城镇职工基本养老保险参保人数 职工基本医疗保险参保人数 失业保险参保人数

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值