
40 БАЛЛОВ!!! С++ C++ Пиксели рисунка закодированы числами от 0 до 255 (обозначающими яркость
пикселей) в виде матрицы, содержащей 4 строки и 4 столбца. Нужно преобразовать рисунок в черно-белый по следующему алгоритму: -- Вычислить среднюю яркость пикселей по всему рисунку -- Все пиксели, яркость которых меньше средней, сделать черными(записать код 0), а остальные - белыми(код 255).

Ответы на вопрос

Ответ:
#include <iostream>
using namespace std;
int main(){
unsigned short int Picture[4][4];
unsigned short int AverageBrightness = 0;
for(unsigned short int y = 0;y < 4;y++){
for(unsigned short int x = 0;x < 4;x++){
std::cin >> Picture[y][x];
AverageBrightness = AverageBrightness + Picture[y][x];
}
}
AverageBrightness = AverageBrightness / 16;
for(unsigned short int y = 0;y < 4;y++){
for(unsigned short int x = 0;x < 4;x++){
if(Picture[y][x] < AverageBrightness){
Picture[y][x] = 0;
}else{
Picture[y][x] = 255;
}
}
}
for(unsigned short int y = 0;y < 4;y++){
for(unsigned short int x = 0;x < 4;x++){
std::cout << Picture[y][x];
}
}
return 0;
}
Объяснение:



Конечно, я помогу вам написать программу на C++, чтобы выполнить указанное преобразование изображения. Вот код, который реализует описанный вами алгоритм:
cpp#include <iostream>
const int ROWS = 4;
const int COLS = 4;
int main() {
// Матрица с исходными яркостями пикселей
int pixels[ROWS][COLS] = {
{100, 150, 200, 50},
{75, 220, 30, 180},
{210, 90, 120, 160},
{40, 170, 240, 70}
};
// Вычисление средней яркости
int totalBrightness = 0;
for (int i = 0; i < ROWS; ++i) {
for (int j = 0; j < COLS; ++j) {
totalBrightness += pixels[i][j];
}
}
int averageBrightness = totalBrightness / (ROWS * COLS);
// Преобразование пикселей по алгоритму
for (int i = 0; i < ROWS; ++i) {
for (int j = 0; j < COLS; ++j) {
if (pixels[i][j] < averageBrightness) {
pixels[i][j] = 0; // Черный
} else {
pixels[i][j] = 255; // Белый
}
}
}
// Вывод результатов
std::cout << "Исходное изображение:" << std::endl;
for (int i = 0; i < ROWS; ++i) {
for (int j = 0; j < COLS; ++j) {
std::cout << pixels[i][j] << " ";
}
std::cout << std::endl;
}
return 0;
}
Программа начинает с создания матрицы pixels
, представляющей яркости пикселей в изображении. Затем она вычисляет среднюю яркость пикселей и преобразует пиксели в соответствии с описанным алгоритмом. Результат выводится на экран.
Обратите внимание, что вам нужно будет подставить свои значения яркостей пикселей в матрицу pixels
в коде выше.


Похожие вопросы
Топ вопросов за вчера в категории Информатика







Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili