Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
Другие темы раздела
C++ Создать массив структур на c++ https://www.cyberforum.ru/ cpp-beginners/ thread125051.html
Здраствуйте. Подскажите как развязать задание, которое задали. С + + учим 2 месяца, и мне трудно развязать его самой, а очень нужно. Заранее благодарна всем. Задание в отдельном файле zadacha.rar
HGE: Евент нажатия кнопки мыши C++
Перерыл пол Яндекса, ничего хорошего не нашел. В общем вопрос касаемый бибилиотеки HGE. Мне нужно чтобы по нажатию мыши происходило какое-либо действие, именно по нажатию на HGE форму, а не на Form1. Нашел вот, что можно решить проблему через этот оператор: Input_GetKeyState(HGEK_LBUTTON) Ничего не получается. Он просто не реагирует. Жмешь кнопку а он как был так и остался. Проверял...
C++ текстовые файлы В заданном предложении указать слово, в котором доля гласных (A, E,O,I) максимальна. https://www.cyberforum.ru/ cpp-beginners/ thread125034.html C++ структур в функциях, работа с файлами и структурами. https://www.cyberforum.ru/ cpp-beginners/ thread125033.html
написать программу, выполняющую на базе вашей предметной области следующие действия: создание файла, просмотр содержимого файла, добавление данных в файл, редактирование данных файла.
C++ использование структур.
имеется структура типа student с полями: ФИО, год рождения, год поступления, оценки за 1, 2, и 3 экзамен (предметы любые). Создать и ввести массив из структур типа student (размер массива произвольный) и Распечатать анкетные данные студентов, имеющих двойки.
C++ Вывести номера строк исходного файла и номер позиции в строке помогите плз написать на "c" программу на строки, со строками раньше не сталкивался...Заранее спс вывести номера строк исходного файла и номер позиции в строке,где встречается это слово. https://www.cyberforum.ru/ cpp-beginners/ thread125030.html
C++ Вычислить суммы положительных элементов массивов Вычислить суммы положительных элементов массивов x(n), y(m), z(k). n<=5 m<=5 k<=5 https://www.cyberforum.ru/ cpp-beginners/ thread125026.html cделать в шаблоне C++
Даны вещественные числа a,b,c,d,e,f.Переменноый S присвоить значение 1,если оба уравнения ах2 + bх + с = 0 и dx2 + ex + f = 0.для нахождения корней квадратного уравнения использовать функцию. пожалуйста помогите cделать в шаблоне.. #include<iostream.h> #include<conio.h> #include<math.h> int mathh (double a,double b,double c);
C++ двумерные массивы 1.вычислить мин, макс элементы в каждой строчке и поменять их местами 2.в данном числовом массиве A(n,m) найти мин элемент и его индекс https://www.cyberforum.ru/ cpp-beginners/ thread125024.html C++ Программа для нахождения битых кластеров Помогите, нужна программа, которая выводила бы количество битых кластеров на дискете, очень нужно. Как в С прочитать кластер? https://www.cyberforum.ru/ cpp-beginners/ thread124990.html
C++ Адресация методом Айлиффа
Необходимо создать адресацию в 4-х мерном массиве(base) методом Aйлиффа. Вот чето не фурычит, ошибка памяти при запуске. #include <iostream> using namespace std; //sposob iliffe int main() { double init; for(int i = 0; i < 72; i++) init = i;
C++ вычислить выражение https://www.cyberforum.ru/ cpp-beginners/ thread124961.html
Создать алгоритм программы для вычисления выражения. При этом найти вычисления, который целесообразно оформить в виде нестандартных функций Скласти алгоритм програми для обчислення виразу. При цьому відшукати обчислення, які доцільно оформити у вигляді нестандартних функцій.
starkan007
0

Посоветуйте как доработать код "Метод жука" для нахождения всех объектов на картинке - C++ - Ответ 703194

03.05.2010, 23:37. Показов 4286. Ответов 0
Метки (Все метки)

Author24 — интернет-сервис помощи студентам
У меня дана картинка на ней несколько треугольнико надо написать программу которая находит эти треугольники!!! Я реализовал это методом жука на С++ вот только проблема он находит первый треугольник и заканчивает поиск!!! помогите реализовать чтобы поиск не заканчивался и он находил остальные треугольники и обрисовывал их контур!!!
вот код:
/ Листинг 4. Модуль выделения контуров (cpp file)

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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
 
#include "GraphicUnit.h"
 
//---------------------------------------------------------------------------
#pragma package(smart_init)
 
#include <Sysutils.hpp>
 
/*
 Отслеживающий алгоритм выделения контуров
 "Алгоритм жука"
*/
 
void AlgorithmBeatle(Graphics::TBitmap* FromImage,
                     Graphics::TBitmap* ToImage)
{
 typedef enum {North, East, South, West} TDirectional;
 int X,Y;                 // Координаты первой встречи с объектом
 int cX,cY;               // Текущие координаты маркера
 Byte *Line, *ToLine;     // Обрабатываемые линии
 Byte B;                  // Значение текущего пиксела
 TDirectional Direct;     // Направление движения жука
 
 // Идем до тех пор, пока не встретим черную область
 for (Y = 0; Y < FromImage->Height; Y++)
 
 {
  Line = (Byte*)FromImage->ScanLine[Y];
  for (X = 0; X < FromImage->Width; X++)
  {
   B = Line[X];
   if (B == 255)   //black
    break;
  }
 
  // Если встречен объект, отличающийся от цвета фона (255 - белый)
  // прервать поиск
  if (X != FromImage->Width)
   break;
 }
 
 // Если не нашли ни одного черного пиксела, то выходим из процедуры
 if ((X == FromImage->Width) && (Y == FromImage->Height))
  return;
 
 // Если все нормально, начинаем обход по алгоритму жука
 ToLine = (Byte*)ToImage->ScanLine[Y];
 ToLine[X] = 0;
 
 // Поворачиваем налево (новое направление - север)
 cX = X;
 cY = Y - 1;
 Direct = North;
 Line = (Byte*)FromImage->ScanLine[cY];
 
 // Пока не придем в исходную точку, выделяем контур объекта
 while ((cX != X) || (cY != Y))
 {
  // В зависимости от текущего направления движения жука
  switch (Direct)
  {
    // Север
   case North:
   {
    B = Line[cX];
    // Если элемент "черный", поворачиваем снова "налево"
    if (B < 255)
    {
     ToLine = (Byte*)ToImage->ScanLine[cY];
     ToLine[cX] = 0;
     Direct = West;
     cX--;
    }
    // Иначе поворачиваем "направо"
    else
    {
     Direct = East;
     cX++;
    }
   }
   break;
 
   // Восток
   case East:
   {
    B = Line[cX];
    // Если элемент "черный", поворачиваем снова "налево"
    if (B < 255)
    {
     ToLine = (Byte*)ToImage->ScanLine[cY];
     ToLine[cX] = 0;
     Direct = North;
     cY--;
     Line = (Byte*)FromImage->ScanLine[cY];
    }
    // Иначе поворачиваем "направо"
    else
    {
     Direct = South;
     cY++;
     Line = (Byte*)FromImage->ScanLine[cY];
    }
   }
   break;
 
   // Юг
   case South:
   {
    B = Line[cX];
    // Если элемент "черный", поворачиваем снова "налево"
    if (B < 255)
    {
     ToLine = (Byte*)ToImage->ScanLine[cY];
     ToLine[cX] = 0;
     Direct = East;
     cX++;
    }
    // Иначе поворачиваем "направо"
    else
    {
     Direct = West;
     cX--;
    }
   }
   break;
 
   // Запад
   case West:
   {
    B = Line[cX];
    // Если элемент "черный", поворачиваем снова "налево"
    if (B < 255)
    {
     ToLine = (Byte*)ToImage->ScanLine[cY];
     ToLine[cX] = 0;
     Direct = South;
     cY++;
     Line = (Byte*)FromImage->ScanLine[cY];
    }
    // Иначе поворачиваем "направо"
    else
    {
     Direct = North;
     cY--;
     Line = (Byte*)FromImage->ScanLine[cY];
    }
    }
   }
       }
 
}


Вернуться к обсуждению:
Посоветуйте как доработать код "Метод жука" для нахождения всех объектов на картинке C++
Заказать работу у эксперта
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.05.2010, 23:37
Готовые ответы и решения:

Посоветуйте паттерн для сверки всех объектов класса между собой
Друзья, нужен совет. Есть потребность произвести сверку всех объектов класса между собой. В...

Метод Лобачевского для нахождения всех корней уравнения любой размерности
нужно реализовать метод Лобачевского для нахождения всех корней уравнения любой размерности,...

Метод класса изменяет переменную для всех объектов сразу
Программа по предмету исследование операций, на тему &quot;сетевое планирование управления&quot;. В общем,...

Найти ошибку в программе (метод Хаусхолдера для нахождения всех собственных значений)
Программа считает собственные значения неверно. Они получаеются очень большими. Помогите найти...

Напишите код для нахождения разности всех элементов массива A[N]
Язык: Python

0
03.05.2010, 23:37
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.05.2010, 23:37
Помогаю со студенческими работами здесь

Создать метод класса для нахождения максимального элемента матрицы и метод для нахождения минимального элемента
#include &lt;iostream&gt; #include &lt;stdlib.h&gt; #include &lt;ctime&gt; using namespace std; class Matrix...

Во всех классах реализовать интерфейс IComparable и перегрузить метод CompareTo для сравнения объектов
В программах требуется описать базовый класс (возможно, абстрактный), в котором задается интерфейс...

Метод хаффмана - доработать код
Добрый день. Написал вот такой код, кривой- не кривой, а работает. program metod_Haffmana; uses...

Как доработать код C# , для Unity2d?
На экране 3 спрайта(здоровье). Нужно чтобы при столкновение с объектом с тегом Debaf , здоровье...

Макрос нахождения и удаления в тексте всех графических объектов
Здравствуйте,помогите пожалуйста.Написать макрос нахождения и удаления в тексте всех графических...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru