Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
Белов
0 / 0 / 0
Регистрация: 11.11.2011
Сообщений: 3
1

получить координаты тех точек, которые получаются после ransac

15.11.2011, 17:04. Просмотров 796. Ответов 0
Метки нет (Все метки)

Ребята нужна срочная помощь!
РЕбята привет,у меня таакой вопрос. нашел программу в интернете.

вот текст на С#:

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
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
using Accord.Imaging;
using Accord.Imaging.Filters;
using Accord.Math;
using AForge;
using AForge.Imaging.Filters;
 
namespace Panorama
{
public partial class MainForm : Form
{
 
 
private IntPoint[] harrisPoints1;
private IntPoint[] harrisPoints2;
 
private IntPoint[] correlationPoints1;
private IntPoint[] correlationPoints2;
 
private MatrixH homography;
 
private Bitmap img1;
private Bitmap img2;
private Bitmap img3;
 
private void LoadImage1()
{
openFileDialog1.InitialDirectory = "C:\\Users\admin\\Desktop\\Panorama\\Resources";
openFileDialog1.Filter = "image (JPEG) files (*.jpg)|*.jpg|All files (*.*)|*.*";
if (openFileDialog1.ShowDialog() == DialogResult.OK) ;
try // безопасная попытка 
{
// пытаемся загрузить файл с именем openFileDialog1.FileName - выбранный пользователем файл. 
img1 = (Bitmap)Image.FromFile(openFileDialog1.FileName); 
}
catch (Exception ex) // если попытка загрузки не удалась
{
// выводим сообщение с причиной ощибки 
MessageBox.Show("Не удалось загрузить файл: " + ex.Message);
}
 
}
private void LoadImage2()
{
openFileDialog1.InitialDirectory = "C:\\Users\admin\\Desktop\\Panorama\\Resources";
openFileDialog1.Filter = "image (JPEG) files (*.jpg)|*.jpg|All files (*.*)|*.*";
if (openFileDialog1.ShowDialog() == DialogResult.OK) ;
try // безопасная попытка 
{
// пытаемся загрузить файл с именем openFileDialog1.FileName - выбранный пользователем файл. 
img2 = (Bitmap)Image.FromFile(openFileDialog1.FileName);
}
catch (Exception ex) // если попытка загрузки не удалась
{
// выводим сообщение с причиной ощибки 
MessageBox.Show("Не удалось загрузить файл: " + ex.Message);
}
 
}
 
 
public MainForm()
{
InitializeComponent();
 
// Concatenate and show entire image at start
LoadImage1();
MessageBox.Show("Теперь выберите второй рисунок");
LoadImage2();
 
Concatenate concatenate = new Concatenate(img1);
pictureBox.Image = concatenate.Apply(img2);
 
}
 
 
private void btnHarris_Click(object sender, EventArgs e)
{
// Step 1: Detect feature points using Harris Corners Detector
HarrisCornersDetector harris = new HarrisCornersDetector(HarrisCornerMeasure.Harris, 20000f, 1.4f, 5);
harrisPoints1 = harris.ProcessImage(img1).ToArray();
harrisPoints2 = harris.ProcessImage(img2).ToArray();
 
 
// Show the marked points in the original images
Bitmap img1mark = new PointsMarker(harrisPoints1).Apply(img1);
Bitmap img2mark = new PointsMarker(harrisPoints2).Apply(img2);
 
// Concatenate the two images together in a single image (just to show on screen)
Concatenate concatenate = new Concatenate(img1mark);
pictureBox.Image = concatenate.Apply(img2mark);
}
 
private void btnCorrelation_Click(object sender, EventArgs e)
{
// Step 2: Match feature points using a correlation measure
CorrelationMatching matcher = new CorrelationMatching(9);
IntPoint[][] matches = matcher.Match(img1, img2, harrisPoints1, harrisPoints2);
 
// Get the two sets of points
correlationPoints1 = matches[0];
correlationPoints2 = matches[1];
 
// Concatenate the two images in a single image (just to show on screen)
Concatenate concat = new Concatenate(img1);
Bitmap img3 = concat.Apply(img2);
 
// Show the marked correlations in the concatenated image
PairsMarker pairs = new PairsMarker(
correlationPoints1, // Add image1's width to the X points to show the markings correctly
correlationPoints2.Apply(p => new IntPoint(p.X + img1.Width, p.Y)));
 
pictureBox.Image = pairs.Apply(img3);
}
 
private void btnRansac_Click(object sender, EventArgs e)
{
if (correlationPoints1.Length < 4 || correlationPoints2.Length < 4)
{
MessageBox.Show("Insufficient points to attempt a fit.");
return;
}
 
// Step 3: Create the homography matrix using a robust estimator
RansacHomographyEstimator ransac = new RansacHomographyEstimator(0.001, 0.99);
homography = ransac.Estimate(correlationPoints1, correlationPoints2);
 
// Plot RANSAC results against correlation results
IntPoint[] inliers1 = correlationPoints1.Submatrix(ransac.Inliers);
IntPoint[] inliers2 = correlationPoints2.Submatrix(ransac.Inliers);
 
// Concatenate the two images in a single image (just to show on screen)
Concatenate concat = new Concatenate(img1);
Bitmap img3 = concat.Apply(img2);
 
// Show the marked correlations in the concatenated image
PairsMarker pairs = new PairsMarker(
inliers1, // Add image1's width to the X points to show the markings correctly
inliers2.Apply(p => new IntPoint(p.X + img1.Width, p.Y)));
 
pictureBox.Image = pairs.Apply(img3);
}
 
private void btnBlend_Click(object sender, EventArgs e)
{
// Step 4: Project and blend the second image using the homography
Blend blend = new Blend(homography, img1);
pictureBox.Image = blend.Apply(img2);
 
 
}
 
private void btnDoItAll_Click(object sender, EventArgs e)
{
// Do it all
btnHarris_Click(sender, e);
btnCorrelation_Click(sender, e);
btnRansac_Click(sender, e);
btnBlend_Click(sender, e);
}
 
private void MainForm_Load(object sender, EventArgs e)
{
 
}
 
private void button6_Click(object sender, EventArgs e)
{
saveFileDialog1.InitialDirectory = "C:\\Users\admin\\Desktop\\Panorama\\Resources";
saveFileDialog1.Filter = "image (JPEG) files (*.jpg)|*.jpg|All files (*.*)|*.*";
saveFileDialog1.ShowDialog();
}
 
}
}
МНЕ НУЖНО как-то получить координаты тех точек, КОТОРЫЕ ПОЛУЧАЮТСЯ ПОСЛЕ RANSAC(Т.Е. ЗНАЧЕНИЯ ПИКСЕЛЕЙ) ЕЩЁ ЖЕЛАТЕЛЬНЕЙ. кто знает как этого добиться?
кто что может наПИШИТЕ.МНЕ ЭТО ОЧЕНЬ НУЖНО.
0
Миниатюры
получить координаты тех точек, которые получаются после ransac  
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.11.2011, 17:04
Ответы с готовыми решениями:

Получить координаты всех точек в прямоугольнике
Здравствуйте. Дан прямоугольник (под углом). Координаты вершин известны ...

Вывести номера тех точек, которые могут быть вершинами квадрата
Дан одномерный массив точек (x1, y1, x2, y2, ... xi, yi), мне надо вывести...

Файл: Получить во втором файле все компоненты первого файла, кроме тех, которые кратны К.
Доброго времени суток, помогите пожалуйста с задачей Написать программу на...

Напечатать все предложения, которые получаются путем перестановки слов
С клавиатуры вводится предложение, слова в котором разделены символом ‘_’....

Напечатать предложения, которые получаются путем перестановки слов исходного текста
Доброе время суток! Вот такое задание просто поставило в тупик: &quot;С клавиатуры...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.11.2011, 17:04

Напечатать все предложения, которые получаются путем перестановки слов исходного текста
Доброго времени суток! Необходимо &quot;Напечатать все предложения, которые...

Ввести с клавиатуры номера 6 точек и их координаты, найти номера точек, попавших в эту область
Имеется область y&gt;=|x| и y&lt;=1-x^2. Ввести с клавиатуры номера 6 точек и их...

Координаты точек
Всем доброго дня! Есть n-ое количество точек с координатами X и Y ...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru