定义一个灰度图像类Image 数据成员 (private): 图像的宽度、图像的高度、图像的像素值 (int value[200][200]) 成员函数 (public): 图像初始化(图像中每个像素的灰度值为一个随机产生的0~255之间的值) 读取某个指定位置的像素值 设置某个指定位置的像素值 计算整个图像中所有像素值的平均值 显示整个图像的像素值。
时间: 2024-03-22 12:38:36 浏览: 19
好的,下面是一个简单的实现:
```c++
#include <iostream>
#include <cstdlib> // for rand() and srand()
#include <ctime> // for time()
using namespace std;
class Image {
private:
int width;
int height;
int value[200][200];
public:
Image(int w, int h) { // constructor
width = w;
height = h;
srand(time(NULL)); // seed the random number generator
for (int i = 0; i < height; i++) {
for (int j = 0; j < width; j++) {
value[i][j] = rand() % 256; // set random pixel value between 0 and 255
}
}
}
int getPixelValue(int i, int j) {
return value[i][j];
}
void setPixelValue(int i, int j, int v) {
value[i][j] = v;
}
double getAveragePixelValue() {
double sum = 0;
for (int i = 0; i < height; i++) {
for (int j = 0; j < width; j++) {
sum += value[i][j];
}
}
return sum / (width * height);
}
void displayPixels() {
for (int i = 0; i < height; i++) {
for (int j = 0; j < width; j++) {
cout << value[i][j] << " ";
}
cout << endl;
}
}
};
int main() {
Image img(5, 5); // create a 5x5 image
cout << "Randomly generated pixel values:" << endl;
img.displayPixels();
cout << "Average pixel value: " << img.getAveragePixelValue() << endl;
cout << "Pixel value at (2,3): " << img.getPixelValue(2, 3) << endl;
img.setPixelValue(2, 3, 128);
cout << "Pixel value at (2,3) after setting it to 128: " << img.getPixelValue(2, 3) << endl;
return 0;
}
```
这个程序定义了一个名为`Image`的类,用于表示一个灰度图像。`Image`类有三个私有成员变量`width`、`height`和`value`,分别表示图像的宽度、高度和像素值。`value`是一个二维数组,存储图像中每个像素的灰度值。`Image`类还有四个公共成员函数:`Image()`是构造函数,用于创建一个指定宽度和高度的图像,并将每个像素的灰度值随机初始化;`getPixelValue()`和`setPixelValue()`用于读取和设置指定位置的像素值;`getAveragePixelValue()`用于计算整个图像中所有像素值的平均值;`displayPixels()`用于显示整个图像的像素值。
在`main()`函数中,我们首先创建一个5x5的图像,并显示它的像素值。然后我们计算整个图像的平均像素值,并读取和设置一个指定位置的像素值,最后再次显示整个图像的像素值。