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
 
			
			
			
			
			
			
			
			
			
			
			
			
			
			
			
			
			
			
			
			
			
			
			
			
			
			
			