Перейти к содержимому
Compvision.ru
FormatCft

Как прикрутить OpenCV к билдеру?

Recommended Posts

Тогда попробуйте захватить по одному кадру и посмотреть их свойства.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

а как проверить, что я взял устройство, ибо capture1 = cvCaptureFromCAM(1) там значение не NULL а кадры оно не даёт

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

double cvGetCaptureProperty(CvCapture* capture, int property_id)
Gets video capturing properties.

Parameters:
capture – video capturing structure.
property_id –
Property identifier. Can be one of the following:
CV_CAP_PROP_POS_MSEC - Film current position in milliseconds or video capture timestamp
CV_CAP_PROP_POS_FRAMES - 0-based index of the frame to be decoded/captured next
CV_CAP_PROP_POS_AVI_RATIO - Relative position of the video file (0 - start of the film, 1 - end of the film)
CV_CAP_PROP_FRAME_WIDTH - Width of the frames in the video stream
CV_CAP_PROP_FRAME_HEIGHT - Height of the frames in the video stream
CV_CAP_PROP_FPS - Frame rate
CV_CAP_PROP_FOURCC - 4-character code of codec
CV_CAP_PROP_FRAME_COUNT - Number of frames in the video file
CV_CAP_PROP_BRIGHTNESS - Brightness of the image (only for cameras)
CV_CAP_PROP_CONTRAST - Contrast of the image (only for cameras)
CV_CAP_PROP_SATURATION - Saturation of the image (only for cameras)
CV_CAP_PROP_HUE - Hue of the image (only for cameras)
[/code]

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Конечно, помогаем! Первый шаг - отказ от Делфи. Двигаемся дальше?

  • Like 2

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

не разделю, так как курс предпологает изучения среды делфей, то и курсовую нужно делать на нем родимом(

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Тяжеловато Вам придется.

Нужно вначале представлять, как реализовывать задачу, а потом браться за её выполнение.

Тема очень объемная, если начинать с нуля (суровая математика :) ). И нужно очень хорошо владеть языком (в смысле оптимизации) на котором собираетесь это делать (требование реалтайм).

  • Like 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

сделал по алгоритму

http://www.compvisio...wtopic=64&st=20

24 пост, ,я взял за основу, нашел VCOpenCV.dll по фотке распознает наура)

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Берем какой нибудь VideoCapture компонент, например этот: http://tscap32.sourceforge.net/

и раздракониваем кадры с него.

  • Like 2

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Разбираем формат, достаем оттуда данные картинки, превращаем в IplImage.

  • Like 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

был бы признателен, если бы Вы удилили время для реализации,ибо я бот , как окозалось, взял задачу выше себя, но делать надо

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

что то типа

google-> frame from video delphi

http://www.swissdelphicenter.ch/torry/showcode.php?id=1180

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Начинайте писать программу, и задавайте конкретные вопросы по мере их возникновения. Вопрос: "как написать программу?" Кого угодно введет в ступор.

  • Like 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

тогда так, как подключить компонент, который вы мне посоветовали

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Из файла install.txt:

Install Delphi 7.0:

Extract all files to some directory.

Open the package tscap32.dpk:

File -> Open..., choose tscap32.dpk

In the package window, choose the "Install" button.

Now, there should be an additional plane in the component palette, containing

the tscap32 Components.

Troubleshooting:

"File not found: 'tscap32_rt.dcu'" - add the directory where you put the component into to the

Search path of the project (Project -> Options -> Tab Directories/Conditionals -> Field Search path)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

я придумал такой алгоритм, что бы каждые 20 мс с капчура видео делались скрины отправлялись в обработку и сра зу же выводились на фору, будет эффект видео, только с реализацией нужна помощь

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Слева дерево классов открой (на плюсик нажми, где TForm1) и покажи скрин. Хотя я и так вижу, что экземпляр класса не создан. А, я понял, ты просто тупо содрал из примера pas файл :). Так не пойдет. Идем учиться ставить кнопки на форму :)

dfm файл открой, наверняка там такого нет (внимание на object tsCap321: TtsCap32 и все что с ним связано):

object Form1: TForm1
Left = 192
Top = 107
Width = 696
Height = 474
Caption = 'test application for tscap32'
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = []
OldCreateOrder = False
PixelsPerInch = 96
TextHeight = 13
object tsCap321: TtsCap32
Left = 0
Top = 73
Width = 688
Height = 374
Logo = True
PreventMessageHook = False
Taborder = 0
CapOrder = start
Parameter.BufferFile = 'C:\Capture.avi'
Parameter.BufferFileSize_Mb = 100
Parameter.SaveFile = 'C:\SaveFile.avi'
Parameter.PreviewRate_mspf = 100
Parameter.PreviewRate_fps = 10
Parameter.CaptureRate_uspf = 66667
Parameter.CaptureRate_fps = 14
Parameter.CapTechnique = ctStreamIntoFile
Parameter.DlgFormat = False
Parameter.DlgCompression = False
Parameter.DlgSource = False
Parameter.DlgDisplay = False
Parameter.TimeLimit = 10
Parameter.TimeLimitEnabled = False
Parameter.UserHitToCapture = False
Parameter.AbortKey = 0
Parameter.ImageWidth = 0
Parameter.ImageHeight = 0
Parameter.MCIControl = False
Parameter.MCIDeviceStep = False
Parameter.MCIStartTime = 0
Parameter.MCIStopTime = 0
DriverCaps.HasOverlay = False
DriverCaps.HasDlgVideoSource = False
DriverCaps.HasDlgVideoFormat = False
DriverCaps.HasDlgVideoDisplay = False
DriverCaps.DriverSuppliesPalettes = False
AudioParameter.AudioHardware = False
AudioParameter.SplFrequ = fdefault
AudioParameter.SplWidth = wdefault
AudioParameter.Channels = chdefault
CapWndDimensions.x = 0
CapWndDimensions.y = 0
CapWndDimensions.w = 0
CapWndDimensions.h = 0
Driver = 0
AboutAuthor = '(c) 1997 Thomas St'#252'fe'
AboutVersion = 'v3.1 open - Published under LGPL'
PopupMenu = tsCap32PopupMenu1
Error = 'No Error'
Align = alBottom
CopyToClipBoard = False
end
object Panel1: TPanel
Left = 0
Top = 0
Width = 688
Height = 73
Align = alTop
TabOrder = 1
object Label1: TLabel
Left = 8
Top = 8
Width = 334
Height = 13
Caption =
'Use right mouseclick to open context menu for the Capture Compon' +
'ent'
end
object Label2: TLabel
Left = 8
Top = 24
Width = 277
Height = 13
Caption = 'Use Buttons to start/stop capture or to capture a still image'
end
object Label3: TLabel
Left = 8
Top = 40
Width = 289
Height = 13
Caption = 'The capture'#39'd AVI is at C:\capture.avi - limited to size 100Mb.'
end
object Button1: TButton
Left = 552
Top = 8
Width = 129
Height = 25
Caption = 'Start AVI Capture'
TabOrder = 0
OnClick = Button1Click
end
object Button2: TButton
Left = 552
Top = 40
Width = 129
Height = 25
Caption = 'Stop AVI Capture'
TabOrder = 1
OnClick = Button2Click
end
object Button3: TButton
Left = 352
Top = 40
Width = 169
Height = 25
Caption = 'Capture Image (C:\test.bmp)'
TabOrder = 2
OnClick = Button3Click
end
object Button4: TButton
Left = 352
Top = 8
Width = 129
Height = 25
Caption = 'Connect/Disconnect'
TabOrder = 3
OnClick = Button4Click
end
end
object tsCap32Dialogs1: TtsCap32Dialogs
AttachedTsCap32 = tsCap321
BufferFileDlg = False
AboutDlg = False
DriverDlg = False
AudioParameterDlg = False
CaptureSettingsDlg = False
PreviewRateDlg = False
AdvCaptureSettingsDlg = False
Left = 312
Top = 104
end
object tsCap32PopupMenu1: TtsCap32PopupMenu
AttachedTsCap32 = tsCap321
StartCaption = 'Start'
StopCaption = 'Stop'
SaveCaption = 'Save'
GrabCaption = 'Grab'
ConnectCaption = 'Connect'
PreviewCaption = 'Preview'
OverlayCaption = 'Overlay'
DialogsCaption = 'Driver Dialogs...'
DialogFormatCaption = 'Format...'
DialogDisplayCaption = 'Display...'
DialogCompressionCaption = 'Compression...'
DialogSourceCaption = 'Source...'
CopyCaption = 'Copy To Clipboard'
SaveAsBmpCaption = 'Save As *.Bmp'
BufferFileCaption = 'Buffer File ...'
CaptureDriverCaption = 'Capture Driver ...'
Left = 344
Top = 104
end
end
[/code]

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Всем привет. Хочу запустить программу отсюда [url=http://blog.vidikon.com/?p=479] на "С++Builder 6". Слежение за одноцветным объектом.

При компиляции выдается ошибка "[C++ Fatal Error] core.hpp(512): F1004 Internal compiler error at 0xc82191 with base 0xc10000" в файле "core.hpp"

Но суть я как понимаю не в том. Если подключить файл "highgui.h", выдается та же ошибка. Т.е. у меня проект не видит библиотеки или header-файлы. Скажите, что и где нужно прописывать, чтобы среда видела все файлы библиотек. Или же это при установке задается. Не знаю в общем - нужно руководство.

А еще запускал другой пример по работе в веб камерой - пошло, пришлось только в интернете скачать несколько файлов и добавить в проект, но там компилятор явно указывал ненайденные файлы.

Так вот, в этом примере программы все файлы бибилиотек и хедеры были явно закинуты в папку проекта, и вызывались #include "name.h"

И еще, строка на которую указывает ошибка №512 в файле "core.hpp":

Matx(const Matx<_Tp, m, n>& a, const Matx<_Tp, m, n>& b, Matx_AddOp);

Matx(const Matx<_Tp, m, n>& a, const Matx<_Tp, m, n>& b, Matx_SubOp);

template<typename _T2> Matx(const Matx<_Tp, m, n>& a, _T2 alpha, Matx_ScaleOp);

Matx(const Matx<_Tp, m, n>& a, const Matx<_Tp, m, n>& b, Matx_MulOp);

template<int l> Matx(const Matx<_Tp, m, l>& a, const Matx<_Tp, l, n>& b, Matx_MatMulOp);

Matx(const Matx<_Tp, n, m>& a, Matx_TOp);

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Видит он файлы, только они ему не по зубам :)

Здесь смотрели?: http://www.compvision.ru/wiki/%D0%94%D0%BB%D1%8F_OpenCv_1.1pre1

И тут посмотрите: http://www.compvision.ru/forum/index.php?showtopic=763

и тут тоже: http://www.compvision.ru/forum/index.php?showtopic=246

Если нужны будут еще темы используйте поиск по слову Builder.

На форуме полно проектов. Заголовочники для билдеров я подправлял, результаты этой работы есть на форуме.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Не нужны тебе сторонние компоненты, используй OpenCV. Необходимые тебе функции и структуры переписывай из С в Delphi.

Вот для начала:


const

  HighGUI = 'libopencv_highgui231.dll';

  CxCore = 'libopencv_core231.dll';


type

  PCvArr = ^CvArr;

  CvArr = Pointer;


  PIplTileInfo = ^IplTileInfo;

  IplTileInfo = record


  end;


  PIplROI = ^IplROI;

  IplROI = record

    coi: Longint;

    xOffset: Longint;

    yOffset: Longint;

    width: Longint;

    height: Longint;

  end;


  PIplImage = ^IplImage;

  IplImage = record

    nSize: Longint;       

    ID: Longint;

    nChannels: Longint;

    alphaChannel: Longint;

    depth: Longint;

    colorModel: array [0..3] of Byte;

    channelSeq: array [0..3] of Byte;

    dataOrder: Longint;

    origin: Longint;

    align: Longint;

    width: Longint;

    height: Longint;

    roi: PIplROI;

    maskROI: PIplImage;

    imageId: Pointer;

    tileInfo: PIplTileInfo;

    imageSize: Longint;

    imageData: PChar;

    widthStep: Longint;

    BorderMode: array [0..3] of Longint;

    BorderConst: array [0..3] of Longint;

    imageDataOrigin: PChar;

  end;


  CvPoint = record

    x: Integer;

    y: Integer;

  end;


  CvSize = record

    width: Integer;

    height: Integer;

  end;


  CvScalar = record

    B: Double;

    G: Double;

    R: Double;

    A: Double;

  end;


  PCvFont = ^CvFont;

  CvFont = record

    font_face: Longint;

    ascii: PLongint;          

    greek: PLongint;

    cyrillic: PLongint;

    hscale: Single;

    vscale: Single;

    shear: Single;            

    thickness: Longint;       

    dx: Single;

    line_type: Longint;

  end;


  function cvNamedWindow(const name: PChar; flags: Integer = 1): Integer; cdecl;

  procedure cvShowImage(const name: PChar; const image: PIplImage); cdecl;

  function cvWaitKey(delay: Integer = 0): Integer; cdecl;

  procedure cvLine(img: PIplImage; pt1, pt2: CvPoint; color: CvScalar;

    thickness: Integer = 1; line_type: Integer = 8; shift: Integer = 0); cdecl;

  procedure cvCircle(img: PIplImage; center: CvPoint; radius: Integer;

    color: CvScalar; thickness: Integer = 1; line_type: Integer = 8;

    shift: Integer = 0); cdecl;

  procedure cvInitFont(font: PCvFont; font_face: Longint; hscale: Double;

    vscale: Double; shear: Double; thickness: Longint; line_type: Longint); cdecl;

  procedure cvPutText(img: PIplImage; text: PChar; org: CvPoint; font: PCvFont;

    color: CvScalar); cdecl;

  function cvCloneImage(const image: PIplImage): PIplImage; cdecl;

  function cvCreateImage(size: CvSize; depth: Integer; channels: Integer): PIplImage; cdecl;

  procedure cvReleaseImage(image: PIplImage); cdecl;



implementation


  function cvNamedWindow; external HighGUI;

  procedure cvShowImage; external HighGUI;

  function cvWaitKey; external HighGUI;

  procedure cvLine; external CxCore;

  procedure cvCircle; external CxCore;

  procedure cvInitFont; external CxCore;

  procedure cvPutText; external CxCore;

  function cvCloneImage; external CxCore;

  function cvCreateImage; external CxCore;

  procedure cvReleaseImage; external CxCore;

и т.д.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

скинь плз что вышло сорс, мне для курсовой поможет

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

HI Smorodov. I'M TRYING YOUR PROJECT AND BORLAND C++ 6 SAYS EXTERNAL EXCEPTION "E06D7363" WHEN TRYING TO WRITE A VIDEO...

CAN YOU HELP ME????

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте учётную запись или войдите для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать учётную запись

Зарегистрируйтесь для создания учётной записи. Это просто!

Зарегистрировать учётную запись

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас


  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу

×