• 【多媒体技术与实践】图像信息获取和处理——编程题汇总


    1:计算图像的数据量

    根据输入的图像分辨率及深度,计算图像的数据量。

    例如:

    输入:

    2816 2112 24

    输出:

    17.02MB  (保留小数点后2位)

    代码块

    1. #include
    2. using namespace std;
    3. #include
    4. int main(){
    5. //rate * depth/8
    6. double a,b,c;
    7. cin>>a>>b>>c;
    8. double sum=a*b*c/8;
    9. sum/=1048576;
    10. printf("%.2fMB",sum);
    11. return 0;
    12. }

    【解析】 

    公式在【chap4 Review of Image Processing and photoshop instruction】ppt中的46页处

    如果是采用位映射存储方式,则未经压缩的数字图像数据量 (B/)=分辨率×(图像深度/8)

    综上所述,图像数据量=height * width * depth / 8 (bit)

    同时1MB=1048576bit

    2:计算一个Bmp图像文件的大小

    输入图像的大小和颜色深度,输出图像大小,以KB表示,保留小数点后2位。

    如:

    输入:

    320 240 4

    输出:

    37.62

    2)

    输入:

    300 200 24

    输出:

    175.83

    【代码块】

    1. #include
    2. using namespace std;
    3. #include
    4. #include
    5. //1 千字节(KB)=8192 比特(bit)
    6. int main(){
    7. double w,h,depth;
    8. cin>>w>>h>>depth;
    9. double ret;
    10. if(depth==24){
    11. ret=w*h*depth/8+14+40;
    12. }
    13. else{
    14. ret=w*h*depth/8+pow(2,depth)*4+14+40;
    15. }
    16. ret/=1024;//B to KB
    17. printf("%.2f",ret);
    18. return 0;
    19. }

    【解析】

    公式和例题在【chap4 Digital Image Processing】ppt中的21页处

    创建一个分辨率为320*24016色的Bitmap图片,该图片的大小为 [填空1] KB(保留小数点后2)

    创建一个分辨率为300*200256色的Bitmap图片,该图片的大小为 [填空2] KB(保留小数点后2)

    创建一个分辨率为320*240的单色的Bitmap图片,该图片的大小为  [填空3]  KB(保留小数点后2)

    创建一个分辨率为300*200的真彩色(24位)的Bitmap图片,该图片的大小为  [填空4]  KB(保留小数点后2)

    1 14+40+16*4+320*240/2=38518B=37.62KB

    214+40+256*4+300*200=61078B=59.65KB

    314+40+2*4+320*240/8=9662B=9.44KB

    414+40+300*200*3=180054B=175.83KB

    注意:如果是300*20016Bitmap图像,其所占空间并不是14+40+16*4+300*200/2=30118B

    因为需要两个像素占一个字节,所以需要补齐8位,长宽都是8的倍数,所以是14+40+16*4+304*200/2=30518B

  • 相关阅读:
    游戏SDK应用内悬浮窗的实现(三)
    道德与社会问题简报 #4: 文生图模型中的偏见
    jquery漂亮的翻书效果应用于tp项目中
    2020年你可能遇到的高频面试题,Java中高级面试题(含答案)!
    【axios三部曲】一、使用axios
    Swin Transformer:最佳论文,准确率和性能双佳的视觉Transformer | ICCV 2021
    劫持TLS绕过canary && 堆和栈的灵活转换
    pythorch的numel()函数计算模型大小与现存占用
    【每日一题】合并两个有序数组
    将 N 叉树编码为二叉树
  • 原文地址:https://blog.csdn.net/m0_65787507/article/details/133808696