用C++语言生成一个随机数矩阵,随机数的范围是0-255,程序可以进行滤波操作,其中滤波核大小和值由用户进行设置
时间: 2024-06-10 12:09:09 浏览: 49
你好,很高兴为您解答问题。针对您的问题,我可以提供以下的代码示例:
```
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define ROWS 10
#define COLS 10
void printMatrix(int matrix[][COLS], int rows, int cols) {
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
printf("%d ", matrix[i][j]);
}
printf("\n");
}
}
void filterMatrix(int matrix[][COLS], int rows, int cols, int kernelSize, int kernelValue) {
int halfKernelSize = kernelSize / 2;
for (int i = halfKernelSize; i < rows - halfKernelSize; i++) {
for (int j = halfKernelSize; j < cols - halfKernelSize; j++) {
int sum = 0;
for (int ki = -halfKernelSize; ki <= halfKernelSize; ki++) {
for (int kj = -halfKernelSize; kj <= halfKernelSize; kj++) {
sum += matrix[i + ki][j + kj];
}
}
matrix[i][j] = sum / (kernelSize * kernelSize) + kernelValue;
}
}
}
int main() {
int matrix[ROWS][COLS];
srand(time(NULL));
for (int i = 0; i < ROWS; i++) {
for (int j = 0; j < COLS; j++) {
matrix[i][j] = rand() % 256;
}
}
printf("Original matrix:\n");
printMatrix(matrix, ROWS, COLS);
int kernelSize = 3;
int kernelValue = 10;
printf("Filtering matrix with kernel size %d and value %d...\n", kernelSize, kernelValue);
filterMatrix(matrix, ROWS, COLS, kernelSize, kernelValue);
printf("Filtered matrix:\n");
printMatrix(matrix, ROWS, COLS);
return 0;
}
```
这段代码使用了 C 语言实现了生成一个随机数矩阵,并可以进行滤波操作。其中,使用 `srand` 函数和 `rand` 函数生成了随机数矩阵,使用 `printMatrix` 函数打印矩阵,使用 `filterMatrix` 函数对矩阵进行滤波操作。您可以通过修改 `ROWS` 和 `COLS` 宏定义来指定矩阵的大小,修改 `kernelSize` 和 `kernelValue` 变量来指定滤波核的大小和值。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)