题目描述 :
小d和她对象小红去海洋馆玩了,但是由于小d拍照技术不好,他对象说把她拍的像嘎子!
小d看了看,发现是小红最近长痘痘了,于是他为了讨小红开心,让痘痘看不见,自学了图像压缩这个技术。毕竟这个比磨皮和修图要好学多了。
这个技术是什么样子的呢?就是将相邻的四个像素点的数值求和取平均数。
因为他是速成的,因此他只能把图像缩小为原来的四分之一。
请你帮助他完成图像压缩吧!这对他很重要。
方法:
import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);int n = Int(); // 图片长度int m = Int(); // 图片宽度// 像素值数组(注意二维数组行和列的习惯)int[][] pixels = new int[n][m];for (int i = 0; i < n; i++) {for (int j = 0; j < m; j++) {// 输入像素值pixels[i][j] = Int();}}// 创建新的空白图片int compressed_n = n / 2;int compressed_m = m / 2;int[][] compressedPixels = new int[compressed_n][compressed_m];// 遍历压缩后的每个像素点,累加四个相邻像素点的灰度值,计算平均值并赋值给新像素点for (int i = 0; i < compressed_n; i++) {for (int j = 0; j < compressed_m; j++) {int sum = 0;sum += pixels[i * 2][j * 2];sum += pixels[i * 2 + 1][j * 2];sum += pixels[i * 2][j * 2 + 1];sum += pixels[i * 2 + 1][j * 2 + 1];// 计算平均值,并向下取整compressedPixels[i][j] = sum / 4;}}// 输出压缩后的像素值for (int i = 0; i < compressed_n; i++) {for (int j = 0; j < compressed_m; j++) {System.out.print(compressedPixels[i][j] + " ");}System.out.println();}}
}
本文发布于:2024-02-08 19:59:52,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170739378868611.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |