Имя: Пароль:
1C
1С v8
Помогите с ком объектом "Cognitive.Puma" для распознования текста картинки
0 alexei366
 
24.07.12
10:32
Использую ком объект от проги CuneiForm, вроде всё хорошо , и параметры дает установить, и методы различные работают. Но самый главный метод (распознавание текста картинки) не работает , ругается на несоответствие параметров (3).

Описание функции


BOOL RecogDIBtoFile(OLE_HANDLE hDIB, LPCSTR lpOutputName, short Format, short code) – Распознать DIB и результат сохранить в файле.
, где
hDIB – handle на глобальную память ( выделенную функцией GlobalAlloc). Допускается распознавание черно-белых 1 битных, серых 8 битных и цветных 24 битных изображений.
lpOutputName – Имя выходного файла.
Format – Формат создаваемого файла. Доступные форматы можно получить фукцией GetEnumFormats и GetFormatString.

Code – Устанавливает кодировку. Каждому формату соответствует своя группа доступных кодировок. Доступные кодировки можно получить функцией EnumCodes и GetCodeString.




вот сам код


Функция  ЧтС2()

КомОб = Новый COMОбъект("Cognitive.Puma");
   КомОб.Load();
   
   
   
   //ленг = КомОб.EnumLanguage(-1);
   //Сообщить(КомОб.GetLanguageString(ленг)+"  "+ленг);
   //ленг = 0;
   //Пока Не (ленг = -1) Цикл
   //    ленг = КомОб.EnumLanguage(ленг);
   //    Сообщить(КомОб.GetLanguageString(ленг)+"  "+ленг);
   //КонецЦикла;
   
   
   //ленг = КомОб.EnumFormats(-1);
   //Сообщить(Строка(ленг)+"   "+КомОб.GetFormatString(ленг));
   //ленг = 0;
   //Пока Не (ленг = -1) Цикл
   //    ленг = КомОб.EnumFormats(ленг);
   //    Сообщить(Строка(ленг)+"  "+КомОб.GetFormatString(ленг));
   //КонецЦикла;
   
   //ленг = КомОб.EnumCodes(8,-1);
   //Сообщить(КомОб.GetCodeString(ленг)+"  "+ленг);
   //ленг = 0;
   //Пока Не (ленг = -1) Цикл
   //    ленг = КомОб.EnumCodes(8,ленг);
   //    Сообщить(КомОб.GetCodeString(ленг)+"  "+ленг);
   //КонецЦикла;    
   
   
   КомОб.Language = 3;
   КомОб.ModeTable = 1;
   
   
   ДвДанные = Новый ДвоичныеДанные("C:\3\1.jpg");

   Попытка
       
       КомОб.RecogDIBtoFile(ДвДанные,"C:\3\2.txt",2,1);

   Исключение
       Сообщить(КомОб.GetReturnString(КомОб.GetReturnCode()));    
       Сообщить(ОписаниеОшибки());
   КонецПопытки;
   
   КомОб.Unload();

КонецФункции
1 Serginio1
 
24.07.12
10:40
А почему ты считаешь, что двоичные данные это hDIB – handle на глобальную память ( выделенную функцией GlobalAlloc).
2 alexei366
 
24.07.12
11:07
подскажи как
3 alexei366
 
24.07.12
11:08
может конечно через какой-нибудь VBscript запускать, но я не знаю как
4 alexei366
 
24.07.12
11:39
Народ ну кто подскажет как тип hDIB и long  в 1с сделать?
5 Serginio1
 
24.07.12
12:22
Как в 1С не знаю. Есть другие языки тебе в помощь.
6 Serginio1
 
24.07.12
12:25
Сдеай ОлеОъект который будет принимать строку с наименоваем файла и выходным файлом, загружать данные в hDIB вызывать функцию RecogDIBtoFile. Смотри примеры которые есть к этой библиотеке
7 alexei366
 
24.07.12
12:29
Пример есть на си, но чото пробывал в vs2010 выдавала пустоту (но она решение сначало конвертила), может не работала из-за того что параметры чтения неверные по умолчанию выставлены.
8 alexei366
 
24.07.12
12:30
могу ресурс дать с чего пример беру
9 Serginio1
 
24.07.12
12:41
Посмотри http://pumanet.codeplex.com/
10 Serginio1
 
24.07.12
12:41
(8) Спасибо времени нет.
11 alexei366
 
24.07.12
12:46
Ну кто мне поможет?
12 alexei366
 
24.07.12
12:46
Может есть у кого наработки по ком объектам в данной теме?