秋招Android进阶面经,面试10余家经验分享,拿到offer真不难( 三 )

  • 灰度直方图只能反映图像的灰度分布情况,不能反映图像像素的位置,即所有的空间信息全部丢失 。
    • 直方图的应用:
    • a.数字化参数:判断一幅图像是否合理的利用了全部被允许的灰度级范围 。一般一幅图应该利用全部或几乎全部可能的灰度级,否则等于增加了量化间隔,丢失的信息将不能恢复 。
    • b.边界阈值选取(确定图像二值化的阈值):假定某图像的灰度直方图具有二峰性,则表明这个图像的较亮区域和较暗区域可以很好地分离,以这一点为阈值点,可以得到很好地2值处理效果(区分物体与背景) 。
    • c.当物体部分的灰度值比其他部分的灰度值大时,可利用直方图统计图像中物体的面积 。
    • d.计算图像的信息量H 。
    9.说一说ffmpeg的数据结构?
    参考答案:
    ffmpeg的数据结构可以分为以下几类:
    秋招Android进阶面经,面试10余家经验分享,拿到offer真不难

    文章插图
     
    • (1)解协议(http,rtsp,rtmp,mms) AVIOContext,URLProtocol,URLContext主要存储视音频使用的协议的类型以及状态 。URLProtocol存储输入音视频使用的封装格式 。每种协议都对应一个URLProtocol结构 。(注意:FFMPEG中文件也被当做一种协议“file”)
    • (2)解封装(flv,avi,rmvb,mp4) AVFormatContext主要存储视音频封装格式中包含的信息 ffmpeg支持各种各样的音视频输入和输出文件格式(例如FLV, MKV, MP4, AVI),而 AVInputFormat和AVOutputFormat 结构体则保存了这些格式的信息和一些常规设置 。
    • (3)解码(h264,mpeg2,aac,mp3) AVStream是存储每一个视频/音频流信息的结构体 。AVCodecContext: 编解码器上下文结构体,存储该视频/音频流使用解码方式的相关数据 。AVCodec: 每种视频(音频)编解码器(例如H.264解码器)对应一 个该结构体 。
    三者的关系如下图:
    秋招Android进阶面经,面试10余家经验分享,拿到offer真不难

    文章插图
     
    • (4)存数据 对于视频,每个结构一般是存一帧;音频可能有好几帧
      • 解码前数据:AVPacket
      • 解码后数据:AVFrame
    10.数字图像滤波有哪些方法?
    参考答案:
    均值滤波(邻域平均法)、中值滤波(消除独立的噪声点)、高斯滤波(线性平滑滤波,消除高斯噪声,对整幅图像进行加权平均,每一个像素点的值都由其本身和邻域内的其他像素值经过加权平均后得到)、KNN滤波、高通滤波、低通滤波等 。




    推荐阅读