Logo
Section 1 / 2

解决方案:小项目 1

在本节课中,你将看到上节课练习题的解答分析。

导入

解决方案:小项目 1

在本节课中,你将看到上节课练习题的解答分析。

解决方案

1#include "imagelib.h" 2 3int main() { 4 // 显示输入图像 5 loadFile("input.png"); 6 // 遍历二维数组中的行 7 for (int i = 0; i < height; i++) { 8 // 遍历每一行中的列 9 for (int j = 0; j < width; j++) { 10 // 处理像素 image[i][j],此处进行操作 11 if (image[i][j] <= 70) { 12 // 将图像像素设置为黑色 13 image[i][j] = 0; 14 } else { 15 // 将图像像素设置为白色 16 image[i][j] = 255; 17 } 18 } 19 } 20 // 显示修改后的图像 21 saveFile("output/modified.png"); 22}

📝注意: 程序会将修改后的图像保存为 output/modified.png。

解释

在灰度图像中,使用一个8位整数来表示像素的亮度。0 表示黑色,255 表示白色,介于0和255之间的数值表示不同的灰色调。

  • height 表示二维数组中的行数。

  • width 表示二维数组中的列数。

我们需要处理图像,并应用一个阈值,将灰度图像转换为黑白图像。

二维数组中包含的像素总数等于 width * height。我们可以使用嵌套的 for 循环来访问二维数组中的每个像素。外层 for 循环遍历二维数组的行数,内层 for 循环遍历每一行中的列数。

我们对像素值设定了一个阈值,即 70。如果像素值小于或等于 70,则将其设置为黑色(0 表示黑色);如果像素值大于 70,则将其设置为白色(255 表示白色)。

你可以随意修改代码并尝试不同的变化,以更好地理解其工作原理。

入门

解决方案:小项目 2