У меня есть изображение, на которое вы нажимаете 2 точки, и создает линию между каждой точкой. В конце концов, о чем просит этот отдел, есть возможность рассчитать длину этих строк и где эти линии произошли. В настоящее время они делают это вручную/бумага/ручка/линейка. Это одно из изображений, с которыми я работаю.Есть ли лучший способ обработки областей изображения?
Эти трещины в середине считаются "область 7".
Так что мне нужен был способ, кроме сохранения моего местоположения x, чтобы измерить линии позже, также добавьте местоположение, которое они попали в мой список. Ниже я единственный способ сделать это, но это доказывает, что это беспорядок. Поскольку изображение не является точным квадратом или прямоугольником, есть много перекрывающихся областей и много областей, где будут пустоты, что зоны не покрываются очень хорошо.
Есть ли лучший способ сделать это? (В настоящее время я только с помощью MessageBox, чтобы показать, где я щелкнул, я не пошел так далеко, как делать что-либо с данными пока, пока я не получить это право.)
if (e.Button.Equals(MouseButtons.Left))
{
Rectangle zone1 = new Rectangle(35, 30, 770, 30);
if (zone1.Contains(e.Location))
{
MessageBox.Show("Zone1");
}
Rectangle zone2 = new Rectangle(890, 40, 330, 300);
if (zone2.Contains(e.Location))
{
MessageBox.Show("Zone2");
}
Rectangle zone3 = new Rectangle(340, 340, 850, 60);
if (zone3.Contains(e.Location))
{
MessageBox.Show("Zone3");
}
Rectangle zone4 = new Rectangle(100, 25, 75, 300);
if (zone4.Contains(e.Location))
{
MessageBox.Show("Zone4");
}
//4-1 trying to cover areas missed in zone4
Rectangle zone41 = new Rectangle(255, 270, 120, 240);
if (zone41.Contains(e.Location))
{
MessageBox.Show("Zone4-1");
}
Rectangle zone5 = new Rectangle(310, 100, 180, 150);
if (zone5.Contains(e.Location))
{
MessageBox.Show("Zone5");
}
//5-1 trying to cover areas missed in zone5
Rectangle zone51 = new Rectangle(220, 80, 60, 45);
if (zone51.Contains(e.Location))
{
MessageBox.Show("Zone5-1");
}
Rectangle zone6 = new Rectangle(635, 35, 250, 210);
if (zone6.Contains(e.Location))
{
MessageBox.Show("Zone6");
}
}
Сгенерировано ли сгенерированное изображение из векторных данных, или вы, как предполагается, должны распознавать функцию? Если последнее, это одноразовая вещь, или ее нужно автоматизировать? Если это одноразовый, вы можете вручную создать изображение для каждого региона (например, заполнить каждый регион черным цветом для соответствующего изображения) и проверить на пиксель, было ли место, которое пользователь нажал, в этом регионе. Ответ зависит от ваших ограничений. – adv12
Re: в том числе «C#» в названии, на самом деле я думал, что это было неодобрительно. Но, может быть, «правила» изменились. – adv12
_ «Редактирование этого, чтобы включить C# в заголовке в соответствии с запросом» _ - это странно, потому что [общее согласие заключается в том, что теги не должны включаться в заголовки] (http://meta.stackexchange.com/questions/19190/should- вопросы-include-tags-in-them-titles) – stuartd