Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cmath>
- #include "bitmap_image.hpp" // библиотека для изображения
- using namespace std;
- int a[128][128];//массив для хранения изображенимя
- int main() {
- bitmap_image image("C://il.bmp"); // создаем объект, где хранится изображения
- for (int x = 0; x < image.width(); x++) {
- for (int y = 0; y < image.height(); y++) {
- rgb_t color; // структура color, в которой хранятся значения характеристики цвето
- image.get_pixel(x, y, color.blue, color.red, color.green);//получаем значения яркости писеле
- a[x][y] = color.red; // значения r g b равны, тк изображение ч/б, поэтому в массив можем записать любой
- }
- }
- int b[261]; // массив, в котором будем считать частоты встречи элементов
- for (int i = 0; i < 261; i++)
- b[i] = 0; //зануляем его
- for (int i = 0; i < 128; i++){
- a[i][64] = round (double (a[i][64]) / 20) * 20 ; //округление
- b[a[i][64]]++;
- cout << a[i][64] << ' '; //выводим среднюю строку
- }
- cout << endl;
- float ent = 0; // значение энтропии
- for (int i = 0; i < 261; i++)
- { if (b[i] > 0)
- { cout << i << ' ' << b[i] << endl; //выводим значение вероятности
- ent = ent - (double(b[i]) / 128) * log2(double(b[i]) / 128);
- }
- }
- cout << "ent = " << ent; //выводим значение энтропии
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement