0 / 0 / 0
Регистрация: 25.07.2013
Сообщений: 163
1

В определенных местах изображения выделить круглую область и перейти к полярным координатам

06.04.2015, 16:05. Показов 936. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, необходимо сделать следующее: существует некое изображение, в определенных местах данного изображения необходимо выделить круглую область и в выделенной части перейти к полярным координатам. Пример того как это выглядит прикладываю. Можно и/или на Matlab еще если кто сможет помочь...
Миниатюры
В определенных местах изображения выделить круглую область и перейти к полярным координатам  
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.04.2015, 16:05
Ответы с готовыми решениями:

Перейти к полярным координатам
Есть область интегрирования {y}^{2}\leq x\leq \frac{{y}^{2}}{4} 0\leq y\leq 4 Как перевести это...

Перейти к полярным координатам и вычислить
Перейти к полярным координатам и вычислить \iint_{D} ...

Перейти к полярным координатам в интеграле
Задание: преобразовать двойной интеграл к полярным координатам. \int_{0}^{R}dx...

Перейти к полярным координатам и вычислить
Перейти к полярным координатам и вычислить \int_{D}\int ydxdy D: полукруг с центром в точке...

11
Эксперт .NETАвтор FAQ
10384 / 5115 / 1824
Регистрация: 11.01.2015
Сообщений: 6,226
Записей в блоге: 34
06.04.2015, 18:19 2
ZaStalim, Что сложного то?
Наработки есть? Интерфейс хотя бы?
0
0 / 0 / 0
Регистрация: 25.07.2013
Сообщений: 163
06.04.2015, 18:32  [ТС] 3
Ну я не сказал что это очень сложно просто не сталкивался с такой задачей и не хочу накосячить. Интерфейса пока нет, т.к. скажем это часть того что необходимо сделать и пока разбираюсь что и как надо сделать, а потом реализовывать буду... Если не сложно приведите примерный код...
0
Эксперт .NETАвтор FAQ
10384 / 5115 / 1824
Регистрация: 11.01.2015
Сообщений: 6,226
Записей в блоге: 34
06.04.2015, 19:37 4
ZaStalim,
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
using System;
using System.Drawing;
using System.Net;
using System.Windows.Forms;
 
namespace WindowsFormsApplication269
{
    public partial class Form1 : Form
    {
        private Bitmap source;
        private Bitmap result;
 
        public Form1()
        {
            InitializeComponent();
 
            source = (Bitmap)Image.FromStream(new WebClient().OpenRead("http://m.friendfeed-media.com/p-9997dbba55d54b279b50a76afc20ce24-medium-1002"));
 
            result = new PolarBuilder().Build(source, new Point(source.Width / 2, source.Height / 2), 0.9f * source.Width / 2);
        }
 
        protected override void OnPaint(PaintEventArgs e)
        {
            base.OnPaint(e);
 
            e.Graphics.DrawImage(source, 10, 10);
            e.Graphics.DrawImage(result, 200, 10);
        }
    }
 
    class PolarBuilder
    {
        public Bitmap Build(Bitmap source, Point center, float radius)
        {
            var res = new Bitmap((int)(radius * 5), 100);
 
            var k1 = 2f*Math.PI/res.Height;
            var k2 = (float)radius/res.Width;
 
            for (int i = 0; i < res.Width; i++ )
            for (int j = 0; j < res.Height; j++)
            {
                var angle = j * k1;
                var r = i * k2;
                var x = center.X + (int)(r * Math.Sin(angle));
                var y = center.Y + (int)(r * Math.Cos(angle));
 
                var gray = (int)(255 * source.GetPixel(x, y).GetBrightness());
                res.SetPixel(i, j, Color.FromArgb(gray, gray, gray));
            }
 
            return res;
        }
    }
}
0
0 / 0 / 0
Регистрация: 25.07.2013
Сообщений: 163
08.04.2015, 10:54  [ТС] 5
Что-то не то получается, что надо...
Миниатюры
В определенных местах изображения выделить круглую область и перейти к полярным координатам  
Изображения
 
0
Эксперт .NETАвтор FAQ
10384 / 5115 / 1824
Регистрация: 11.01.2015
Сообщений: 6,226
Записей в блоге: 34
08.04.2015, 11:28 6
ZaStalim, А если подумать?
0
0 / 0 / 0
Регистрация: 25.07.2013
Сообщений: 163
08.04.2015, 11:36  [ТС] 7
вот сижу и думаю и не пойму вот эти строчки (почему именно так), видимо на них все завязано:
C#
1
2
3
4
var res = new Bitmap((int)(radius * 5), 100);
 
            var k1 = 2f*Math.PI/res.Height;
            var k2 = (float)radius/res.Width;
0
Эксперт .NETАвтор FAQ
10384 / 5115 / 1824
Регистрация: 11.01.2015
Сообщений: 6,226
Записей в блоге: 34
08.04.2015, 11:47 8
ZaStalim, Вид полярных координат зависит от того, какой угол считать нулевым, и в какую сторону идет отсчет угла.
Прибавь к angle Math.PI, и будет как на примере:
C#
1
var angle = j * k1 + Math.PI;
Кроме того, я сделал полярные координаты. Что бы были лог-полярные, нужно взять логарифм (или экспоненту) от r. Я этого не делел, потому что непонятно какой логарифм брать и с какими коэффициентами.
0
0 / 0 / 0
Регистрация: 25.07.2013
Сообщений: 163
08.04.2015, 11:57  [ТС] 9
Я ошибся нужно просто полярные а не лог

Добавлено через 7 минут
А почему радиус*5 и высота 100?? И к2 же всегда будет 0.2
0
Эксперт .NETАвтор FAQ
10384 / 5115 / 1824
Регистрация: 11.01.2015
Сообщений: 6,226
Записей в блоге: 34
08.04.2015, 12:00 10
Цитата Сообщение от ZaStalim Посмотреть сообщение
А почему радиус*5 и высота 100?? И к2 же всегда будет 0.2
100 - это высота картинки. Можно сделать 200...
А радиус на 5 - просто что бы увеличить по ширине. На примере еще больше растянуто по ширине.
0
0 / 0 / 0
Регистрация: 25.07.2013
Сообщений: 163
08.04.2015, 12:17  [ТС] 11
Ну то, что это высота и ширина то понятно)) а что насчет к2?
0
Эксперт .NETАвтор FAQ
10384 / 5115 / 1824
Регистрация: 11.01.2015
Сообщений: 6,226
Записей в блоге: 34
08.04.2015, 12:30 12
Цитата Сообщение от ZaStalim Посмотреть сообщение
а что насчет к2?
А что с ним не так? Это коэффициент пересчета из радиуса исходной картинки в координату X результирующей картинки.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.04.2015, 12:30
Помогаю со студенческими работами здесь

В двойном интеграле перейти к полярным координатам
Здравствуйте. Подскажите пожалуйста с данной задачей: В двойном интеграле перейти к полярным...

В двойном интеграле перейти к полярным координатам
В двойном интеграле \int_{D}^{}\int f(x,y)dxdy, где D={(x,y): |x-1|+|y|&lt;=1}, перейти к полярным...

Перейти к полярным координатам и расставить пределы
Здравствуйте, нужна помощь с интегралом, само задание в заголовке ∬f(x,y)dxdy. a -...

Перейти к полярным координатам и вычислить двойной интеграл.
Двойной интеграл по области D: \ln{(1+x^2+y^2)}dxdy; D\{(x,y):x^2+y^2\leq 1,x\geq 0\} ...


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

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

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