定义一个灰度图像类Image 数据成员 (private): 图像的宽度、图像的高度、图像的像素值 (int value[200][200]) 成员函数 (public): 图像初始化(图像中每个像素的灰度值为一个随机产生的0~255之间的值) 读取某个指定位置的像素值 设置某个指定位置的像素值 计算整个图像中所有像素值的平均值 显示整个图像的像素值。用c++
时间: 2024-03-24 12:36:06 浏览: 16
用c++读取灰度图像.txt
5星 · 资源好评率100%
以下是一个简单的C++类Image的定义,包括上述要求的数据成员和成员函数:
```c++
#include <iostream>
#include <cstdlib>
#include <ctime>
class Image {
private:
int width; // 图像的宽度
int height; // 图像的高度
int value[200][200]; // 图像的像素值
public:
// 构造函数,初始化图像
Image(int w, int h) : width(w), height(h) {
srand(time(NULL)); // 设置随机数种子
// 生成每个像素的随机灰度值
for (int i = 0; i < height; i++) {
for (int j = 0; j < width; j++) {
value[i][j] = rand() % 256; // 生成0-255之间的随机数
}
}
}
// 获取图像中某个位置的像素值
int getPixel(int x, int y) {
if (x >= 0 && x < width && y >= 0 && y < height) {
return value[y][x];
} else {
std::cerr << "Error: Pixel position out of bounds!" << std::endl;
return -1; // 返回一个无效值
}
}
// 设置图像中某个位置的像素值
void setPixel(int x, int y, int v) {
if (x >= 0 && x < width && y >= 0 && y < height) {
value[y][x] = v;
} else {
std::cerr << "Error: Pixel position out of bounds!" << std::endl;
}
}
// 计算整个图像中所有像素值的平均值
double getAverage() {
int sum = 0;
for (int i = 0; i < height; i++) {
for (int j = 0; j < width; j++) {
sum += value[i][j];
}
}
return (double)sum / (width * height);
}
// 显示整个图像的像素值
void show() {
for (int i = 0; i < height; i++) {
for (int j = 0; j < width; j++) {
std::cout << value[i][j] << " ";
}
std::cout << std::endl;
}
}
};
```
使用示例:
```c++
int main() {
Image img(5, 5); // 创建一个5x5的图像
std::cout << "Pixel (1, 2) = " << img.getPixel(1, 2) << std::endl; // 获取(1, 2)处的像素值
img.setPixel(1, 2, 128); // 将(1, 2)处的像素值设置为128
std::cout << "Average = " << img.getAverage() << std::endl; // 计算平均值
img.show(); // 显示所有像素值
return 0;
}
```
阅读全文