导入
解决方案:小项目 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 表示白色)。
你可以随意修改代码并尝试不同的变化,以更好地理解其工作原理。