Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 1
Регистрация: 10.04.2015
Сообщений: 69

Вывод гистограммы фото

25.06.2015, 19:29. Показов 1112. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте,мне задали написать программу которая будет отображать RGB гистограммы цветов.Понятия не имею как написать код для гистограммы.Прикреппляю код
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
 
namespace Histogramma
{
    public partial class frmHist : Form
    {
        public frmHist()
        {
            InitializeComponent();
      
        }
      
        private void openToolStripMenuItem_Click(object sender, EventArgs e)
        {
            fileDialog.Filter = @"Image Files(*.BMP;*.JPG;*.GIF)|*.BMP;*.JPG;*.GIF|All files(*.*)|*.*";
            if (fileDialog.ShowDialog() == System.Windows.Forms.DialogResult.OK)
            {
                pctImage.Image = Image.FromFile(fileDialog.FileName);
            }
        }
        
        private void calculateHistogramToolStripMenuItem_Click(object sender, EventArgs e)
        {
            CalculateHistogram(pctImage.Image);
        }
        private void CalculateHistogram(Image img)
        {
            GraphicsUnit units = GraphicsUnit.Pixel;
            Color currentColor = Color.White;
            int[] arrR = new int[256];
            int[] arrG = new int[256];
            int[] arrB = new int[256];
            Bitmap bmp = (Bitmap)img;
            RectangleF rect = bmp.GetBounds(ref units);
            for (int i = 0; i < rect.Width; i++)
            {
                for (int j = 0; j < rect.Height; j++)
                {
                    currentColor = bmp.GetPixel(i, j);
                    arrR[currentColor.R]++;
                    arrG[currentColor.G]++;
                    arrB[currentColor.B]++;
                }
            }
            showGraph1.SetData(arrR);
            showGraph1.Refresh();
            showGraph2.SetData(arrG);
            showGraph2.Refresh();
            showGraph3.SetData(arrB);
            showGraph3.Refresh();
        }
        private void exitToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Application.Exit();
        }
 
        private void showGraph2_Load(object sender, EventArgs e)
        {
 
        }
 
        private void showGraph1_Paint(object sender, PaintEventArgs e)
        {
 
        }
    }
}
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
 
namespace Histogramma
{
    /*user Control*/
    public partial class ShowGraph : UserControl
    {
        private int[] arr;
        public ShowGraph()
        {
            InitializeComponent();
            lblTitle.Text = string.Empty;
        }
        public string GraphTitle
        {
            get { return lblTitle.Text; }
            set
            {
                lblTitle.Text = value;
                lblTitle.Left = (this.Width - lblTitle.Width) / 2;
            }
        }
        public void SetData(int[] tmp)
        {
            int length = tmp.GetUpperBound(0) + 1;
            arr = new int[length];
            tmp.CopyTo(arr, 0);
        }
        private void ShowGraph_Paint(object sender, PaintEventArgs e)
        {
           //here to draw graph
 
        }
    }
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
25.06.2015, 19:29
Ответы с готовыми решениями:

Вывод текста точно по центру столбца гистограммы
Здравствуйте. У меня есть гистограмма и под каждым её столбцом я вывожу текст. Мне нужно сделать его точно по центру. Изначально делал...

Как сделать рандомный вывод фото?
Знаю что вот это будет выводить числа, а как сделать так что бы выводила фото? И если не сложно то возможно сделать так что бы,фотки не...

Создание гистограммы
Здравствуйте. У меня тут вопрос скорее по математике, чем по программированию... У меня есть список чисел: ...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
25.06.2015, 19:29
Помогаю со студенческими работами здесь

Из гистограммы в текстбокс
Пробегает цикл по формуле. Выпавшие числа от 1 до 6 включительно. Они заносятся на гистограмму. Как привязать столбик гистограммы к...

Построение гистограммы распределения
Всем доброго времени суток! Коротко о главном. Суть программы: имеется таблица с ФИО студентов и номерами вопросов теста. Заполнена...

Вывод гистограммы в консоль
Хочу вывести гистограмму в консоль на подобие как в пакете tqdm, но мне нужен не динамический progress bar, а статический bar

Вывод гистограммы случайных чисел в пределах от 1 до 10
#include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; #define NUMBER 100 #define LOWER 1 #define UPPER 10 static unsigned long int next =...

mvs 2010 - сканирование изображения в массив и вывод гистограммы
Приветствую народ! подскажите пожалуйста, каким образом перетащить код из Билдера(обработчик button) : Series1-&gt;Clear(); ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru