Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Программирование Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 2 3 4 5 6 7 [8]      все
 Re: Четверговый архивариус  [new]
exp98
Member

Откуда:
Сообщений: 1646
Обижаешь, Начальник! Принтскрин это ...

К сообщению приложен файл (public_html.zip - 49Kb) cкачать
20 фев 19, 21:16    [21815820]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
exp98
Member

Откуда:
Сообщений: 1646
Всевозможная грязь в прогах - мой рабчий стиль с детства, уж извиняйте, на листочках у меня тож самое, из-за этого давно перешёл на карандаш.
В предыдущей проге на вход надо было подать выСобеленный рис, в этом варианте по задумке нужен цветной (возможно, что не со всякой "палитрой").
Схематично моя логика в ф-ции onlad().

Идея логики.
// В исходном рисунке (цветном) выделить края в массив В(). Нарисовать новый рис рядом с исходным.
// В тот же В() записать преобразование радона-хафа с тангенсами. На том же месте рисовать новый рис.

Псевдокод.
pix= GetFile("имя.файла")
DrawImage(pix)
B[][]= Sobel(pix)
DrawImage(B[][])

  // return; // чтоб посмотреть только Sobel(pix), раскоментить эту строку
  // вместо возврата можно сделать паузу типа alert("Любуемся выделенными краями", 10000);

B[][]= RadoHough(B[][])
//B[3x + 0,1,2][]=B[x][] // утроение по горизонтали,т.к. ширина канвы 512, а угол 180*3 ~ 512
DrawImage(B[][])
end.
Такая была задумка.
Возможную ошибку прежде всего стоит искать в районе
B[][]= RadoHough(B[][])

Глазкамми ошибку не нахожу.
21 фев 19, 12:41    [21816191]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
mayton
Member

Откуда: loopback
Сообщений: 41068
exp98, грязь мы зачистим. Это не страшно.

Вы пользуетесь sourceforge, github, bitbucket?
21 фев 19, 14:58    [21816446]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
exp98
Member

Откуда:
Сообщений: 1646
Ой, нет, увольте. Раз попробовал: в одном бабки, в другом региться - нэнавввижжу.
В МЛ те же рез-ты.
21 фев 19, 18:45    [21816759]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
mayton
Member

Откуда: loopback
Сообщений: 41068
Везде бесплатно. Я не платил нигде.
21 фев 19, 18:51    [21816766]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
exp98
Member

Откуда:
Сообщений: 1646
Неважно, в ближайшиее же время у меня 2 варианта. Как дядя Гена, либо никак. В обоих случаях нафиг региться, тем более, что нэнаввижу.
21 фев 19, 19:05    [21816779]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
mayton
Member

Откуда: loopback
Сообщений: 41068
exp98
В предыдущей проге на вход надо было подать выСобеленный рис, в этом варианте по задумке нужен цветной (возможно, что не со всякой "палитрой").

Для bi-tonal картинки с которой я начал есть предположение что Собель вырождается в простой фильтр границ.

exp98
// В тот же В() записать преобразование радона-хафа с тангенсами. На том же месте рисовать новый рис.

Непонятно. Все таки вы реализовали радона? Я к тому что мне тяжелая артиллерия не нужна. Только-бы
детектировать 2 главных направления. Строки. И некая вертикальная линия абзацев. Дожны быть примерно
под 90 градусов.

Поэтому если есть возможность упростить Радона - ябы хотел упростить. У него слишком большой универсализм.
21 фев 19, 19:19    [21816788]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
mayton
Member

Откуда: loopback
Сообщений: 41068
exp98
Как дядя Гена, либо никак.

Хм... я считал что я знаю много метафор и мемов... Но тут не понял. Шутка йумора?
21 фев 19, 19:20    [21816789]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
exp98
Member

Откуда:
Сообщений: 1646
Возвращаюсь к баранам.
Преобразование - самая лёгкая часть,но оно следует за этапом отделения графики от текста.

Сделал пробный МЛ-ный вариант (образец картинки приложен).
+
1) Составить ковариационную матрицу
2) убедиться, что характеристики регионов разнятся
3) вычленить регион(ы) графики и текста(ов) - проблема 1 (рисунки приложены)
3.1) глазками убедились,что всё по задумке
3.2) У= корень(диагональ) это СКО .... столбцов
3.3) посмотрели и убедились, что плоский график по задумке.
3.4) робастно сгладив, обнаружили 2(3,4,....) кластера (это отдельный метод) да и без сглаживания видно
3.4.1) проблема 1.1, графика может перемежаться с текстом,разделятьсялишь одной текстовой строкой ит.п.
3.5) Наконец выделили регионы.


Это пока на одном примере, а нужна репрезентативная подборка - проблема 2.

К сообщению приложен файл (covar.zip - 62Kb) cкачать
21 фев 19, 19:26    [21816793]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
exp98
Member

Откуда:
Сообщений: 1646
Мой радон-хаф (я их уже не отличаю) проще некуда, всё наверчено вокруг ур-ний у=кх+в, а лучше в полярных, тогда будет уCos()+xSin() и поворот оси для каждого угла. Тоже несложно, но объективно более трудоёмко, а я ленивый.

Метафора? нет, это его имя, судя по нику, (ну там ещё second name).

Перпендикуляры есть - макс точка вычисляется, остаётся её нарисовать в предположении, что имеем преимущественно текстовый контент, в МЛ пока всё.

Вот я обрисовал выше 2 стороны одной проблемы: кластеризация. Проблема в том, что для глазок всё очевидно, для автоматизма куча вариантов. Таково моё видение этого участка задачи. А на пальцах всё просто.
21 фев 19, 19:38    [21816805]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
Dima T
Member

Откуда:
Сообщений: 13717
Зря вы скриншоты игнорируете.
Есть идея сделать очередное удаленное управление (прямая передача по UDP), т.к. тимвьюер стал монополистом и просто беспредельничает в плане финансов. Хочу создать бесплатный аналог, желательно технически превосходящий.
Алгоритмы построения снимка на основе предыдущего снимка тут очень пригодятся.
21 фев 19, 20:44    [21816847]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
exp98
Member

Откуда:
Сообщений: 1646
Это а-ля удалённый рабочий стол виндовса? около 4-х лет за ним просидел. Так-то ничего, но в сочетании с удалённым дебилдером и удалёнными файлами жуткие тормоза.
А по сути если, то совсем не в направлении топика. Ближе к мпегу. Те капли, что сейчас из себя выдавливаю, экспромты. Не преувеличивайте мои, во всяк, возможности.
21 фев 19, 21:14    [21816862]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
Dima T
Member

Откуда:
Сообщений: 13717
exp98
Это а-ля удалённый рабочий стол виндовса?

Если очень приближенно, то да. Главная проблема пробиться через наты.
21 фев 19, 21:20    [21816864]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
mayton
Member

Откуда: loopback
Сообщений: 41068
exp98, я в общей сложности от вас получил аж 6 архивов. И что теперь с ними делать?

4sql.zip
covar.zip
Hough15grad.zip
html.zip
MAIOR-multi.zip
public_html.zip


Трудно без версионного контроля. Мдя... Попробую понять где сорцы. И где актуальное.
22 фев 19, 02:16    [21816950]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
mayton
Member

Откуда: loopback
Сообщений: 41068
Dima T
Зря вы скриншоты игнорируете.
Есть идея сделать очередное удаленное управление (прямая передача по UDP), т.к. тимвьюер стал монополистом и просто беспредельничает в плане финансов. Хочу создать бесплатный аналог, желательно технически превосходящий.
Алгоритмы построения снимка на основе предыдущего снимка тут очень пригодятся.

Есть бесплатный VNC. Лет 10 назад он уже был портирован с Linux на Windows и вполне себе работал.

Есть еще Radmin под Windows. Последний раз я его использовал во времена Windows2003/XP. Очень надежная
и нетребовательная штука.
22 фев 19, 02:25    [21816952]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
mayton
Member

Откуда: loopback
Сообщений: 41068
Последние сорцы тут и тут.
html.zip (14-Feb-2019)
public_html.zip (20-Feb-2019)

Ревизия от 20-Feb не работает. Вобщем ничего не рисует.
22 фев 19, 02:45    [21816954]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
Dima T
Member

Откуда:
Сообщений: 13717
mayton
Есть бесплатный VNC. Лет 10 назад он уже был портирован с Linux на Windows и вполне себе работал.

Есть еще Radmin под Windows. Последний раз я его использовал во времена Windows2003/XP. Очень надежная
и нетребовательная штука.

Они не подходят, т.к. сервером является тот, кем надо управлять, а он за NAT`ом, т.е. без проброски порта туда не прорваться.
Собственно в этом основная проблема: юзер, к кому надо подключиться, должен выполнить для настройки сложные действия, значительно превышающие его ИТ-квалификацию.
22 фев 19, 07:20    [21816973]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
mayton
Member

Откуда: loopback
Сообщений: 41068
Dima T
mayton
Есть бесплатный VNC. Лет 10 назад он уже был портирован с Linux на Windows и вполне себе работал.

Есть еще Radmin под Windows. Последний раз я его использовал во времена Windows2003/XP. Очень надежная
и нетребовательная штука.

Они не подходят, т.к. сервером является тот, кем надо управлять, а он за NAT`ом, т.е. без проброски порта туда не прорваться.
Собственно в этом основная проблема: юзер, к кому надо подключиться, должен выполнить для настройки сложные действия, значительно превышающие его ИТ-квалификацию.

Архитектурно твоя задача звучит как автоматизация проброски UDP за NAT. И я думаю что надо почитать в этом направлении.
Может тебе не надо разрабатывать свой удленный десктоп.
22 фев 19, 11:55    [21817167]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
exp98
Member

Откуда:
Сообщений: 1646
mayton
Последние сорцы тут и тут.
html.zip (14-Feb-2019)
public_html.zip (20-Feb-2019)
Других и не загружал. Повторяю их различие. Более ранняя версия ожидает на входе собелённый файл. Версия от 20 фев. предполагает, что файл цветной либо полутоновый, и поэтому сперва выводит на экран его. Затем выделяет в нём края с маской (-1 4 -1) и дальше работает уже с этим изображением.
mayton
Версия от 20-Feb не работает. В общем, ничего не рисует.
mayton, Вы как ребёнок (что удивительно). Когда "не работало" у меня, то хотя бы левое изображение выводилось, а правое было в ч/б цвете. Использование другого брра вопрос решило. Но это же не Ваш случай.

Вы дали мне заготовку с выводами в консоль. Вы хотя бы в консоль заглянули? до finish добралось? Я думаю, что завершилось на onload.
Вы прекрасно знаете, где искать строку с именем файла-картинки. Такой файл есть в том же каталоге? я думаю, что нет.
22 фев 19, 19:27    [21817590]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
exp98
Member

Откуда:
Сообщений: 1646
Рекламное изображение с сегментацией дисторшнутого факса (был, кто ещё помнит такой).
Извините уж, там 800х600, меньше некуда.

К сообщению приложен файл. Размер - 15Kb
5 мар 19, 14:56    [21825445]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
exp98
Member

Откуда:
Сообщений: 1646
И оставлю , пожалуй, остальные картинки и псевдокод, МЛ-ный вариант.
Выполняется отдельно для исходного и транспонированного изобр-я.
Варант автоматический (файл только задать надо, а потом сохранить картинки).
+
%%function runCAV_Vsections(sfile, sext)
%%%%%% Запускать как ф-цию:  clear all;close all; runCAV_Vsections('sfile', 'sext');

%%%%%% Запускать как m-file:
%% clear all;close all; sfile= 'c:\tmp\mix\ImgSampls\Fax-distor\fax1_distor.png'; sext= 'png';
    %%%%[A, map]= imread('c:\tmp\mix\Oval2\public_html\coins.png', 'png');
    %%%% B= single(255*edge(rgb2gray(A), 'sobel')); 

%% Загрузить и обработать рисунок
if strcmp( sext, 'bmp') || strcmp( sext, 'jpg') || strcmp( sext, 'png')
    [A, map]= imread(sfile, sext);
else
    fprintf(1, 'ERROR: Неизвестный тип файла: %s\n', sext);  return;  %% 1=stdout
end;
if length(size(A)) == 3
    %%C= A( (1:size(A,2)), (1:size(A,1)), (1:size(A,3)) ); A=[]; A= C;
    CVA= cov( single(rgb2gray(A)) ); 
else
    %%C= A((1:size(A,2)), (1:size(A,1))); A=[]; A= C;
    CVA= cov( single(ind2gray(A,map)) );
end;
  %%Gr= single(rgb2gray(A)); C=[Gr; zeros(1024-768, 1024)]; CVA=C;


%% Сгладить стат. характ-ки
h=15; dm=[]; dd=[];
dm=[]; p=length(diag(CVA)); for k=2:(p-1) if k<=h  hk=k-1; elseif k<=p-h hk=h; else hk=p-k; end;  dm(k)= sqrt(mean( reshape(CVA((k-hk):(k+hk), (k-hk):(k+hk)), length([(k-hk):(k+hk)])^2, 1) )); end;
dd=[]; p=length(diag(CVA)); for k=2:(p-1) if k<=h  hk=k-1; elseif k<=p-h hk=h; else hk=p-k; end;  dd(k)= sqrt(std(  reshape(CVA((k-hk):(k+hk), (k-hk):(k+hk)), length([(k-hk):(k+hk)])^2, 1) )); end;
t=0.15; my= dd*(1-t) + dm*(1+t); %%smooth( dd, 3,'rloess');
sb= edge(my, 'sobel', 1, 'vertical'); 
ind=[];nums=[]; ind= find(sb==1); nums= ind; %%nums()=nums();
clear nc; nc(1)=nums(1); cnt=1; bh=true; nc0=nums(1); for k= 2:length(nums)  if nums(k)-nc0>2*h+1  nc(cnt+1)= nums(k); cnt=cnt+1; bh=false; nc0=nums(k);  else if bh==false  nc0=nums(k-1); bh=true; end;  nc(cnt)= (nc0 + nums(k))/2; end;  end;


%% Принудительно притянуть крайние границы к краю рисунка
dln=length(nc); x= nc(1); y= nc(end); dh= h; %% h/2
if dln>2 
    nc(2:(end-1))= nc(2:(end-1)); 
    if (x < dh)  nc(1)= 1; end;
    if  (abs(y-size(CVA,2))< dh)  nc(end)= size(CVA,2); end;  
else
    nc(1)=max([x-dh, 1]); nc(end)= max([y-dh, 1]);
end;
clear dln, clear dh, clear x, clear y;


%% Рисовать
figure(2); imshow(CVA, []);
figure, plot([dm.' dd.' my.']); 
for k= 1:length(nc)  line( [nc(k) nc(k)], [1  max(my)] ,'LineWidth',1,'Color','green'); end;
figure, plot( sb);

figure, imshow(A,[]); for k= 1:length(nc)  line( [nc(k) nc(k)], [1  size(A,1)] ,'LineWidth',1,'Color','green'); end;
figure(2),            for k= 1:length(nc)  line( [nc(k) nc(k)], [1  size(CVA,1)] ,'LineWidth',1,'Color','green'); end;
S= edge(CVA, 'sobel'); figure, imshow(S, []);

Модератор: Просьба код форматированный давать. Убрал под спойлер чтобы разметку страницы не рвало


К сообщению приложен файл (Fax-distor.zip - 125Kb) cкачать
5 мар 19, 16:00    [21825509]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
mayton
Member

Откуда: loopback
Сообщений: 41068
Мне кажется что бочка - это не наш кейс.

Я бы в топике ее не рассматривал особо.
5 мар 19, 17:34    [21825629]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
exp98
Member

Откуда:
Сообщений: 1646
Я высказывал скепсис распознаванию как методу сжатия без потерь. Мой интерес просто в самом отделении текста от графики. А Ваш случай специфицирован достаточно расплывчато.
Даже книги могут быть похожи на этот. Книги могут иметь иллюстрации, посреди текста.
Книги по программизму чаще содержат большие вставки скринов. Скрин - часто есть смесь текста с графикой. Среди 6 вариантов, рассмотренных мною, есть и 2 таких скрина.

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

И только боле мене искусственный вариант - да и тот может давать сбои. Во вложении.

В инете рекламируют SWT. Достаточно друдоёмко для факультативной работы.

К сообщению приложен файл (Mior-2_2-5.zip - 127Kb) cкачать
5 мар 19, 18:27    [21825678]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
mayton
Member

Откуда: loopback
Сообщений: 41068
Тема топика задана. Архивация.
5 мар 19, 20:24    [21825744]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 2 3 4 5 6 7 [8]      все
Все форумы / Программирование Ответить