1

Я работаю над Emgu cv в качестве консольного приложения, и я пытался загрузить файл образа формата jpeg с компьютерного диска. Я пробовал следующие способы, но ничего не работает?C# - TypeInitializationException при загрузке файлов изображений в Emgu cv для консольного приложения C#?

Image input = Image.FromFile("C://Users//...//Image.jpg"); 
Bitmap master = (Bitmap)input; 
Image<Gray,byte> InputImage = new Image<Gray,byte>(master); 
RecognizeFaces(InputImage); 

И это слишком

Image<Bgr,byte> inputImage = new Image<Bgr,byte>("C:\\Users\...\Image.jpeg"); 
Image<Gray,byte> grayFrame = inputImage.Convert<Gray,byte>(); 

Оба способа его не working.Any другой вариант? Он останавливается здесь

_ptr = CvInvoke.cvCreateImageHeader(new Size(cols, rows), CvDepth, numberOfChannels); 

в классе заведомо Image.cs из Emgu cv.And он бросает тип инициализатора для «Emgu.CV.CvInvoke» путь Exception.The Файл совершенен/correct.the выглядит ошибка как это. Внутреннее исключение - «System.BadImageFormatException» Была сделана попытка загрузить программу с неправильным форматом «Исключение для hresult 0x8007000B». Конфигурационный менеджер и цель сборки одинаковы как с любым CPU. http://www.mediafire.com/view/myfiles/#6557l4iwzpza7m5 Не могли бы вы рассказать мне, что я делаю неправильно здесь? Спасибо

+0

Уже есть сотни вопросов об этом исключении, они почти все имеют одинаковый ответ. Это проблема с развертыванием, вы используете неправильную версию родных DLL, используемых Emgu. Щелкните правой кнопкой мыши проект EXE, вкладка «Свойства», «Создать». Измените настройку целевой платформы. Если теперь это AnyCPU, измените его на x86. Или наоборот, это не ясно из вопроса. –

ответ

0

Разделители в пути к файлу обращены для Windows. Вы пытались сделать это так: «C: \ Users \ ... \ Image.jpeg»? (вместо «//»)

Вы можете проверить его с помощью File.Exists, чтобы быть уверенным.

Я искал бы ошибки (простые ошибки). Вообще-то я не помню, что у меня проблемы с загрузкой изображения из файла с помощью Emgu.

+0

Не работает. Любой другой вариант? Он останавливается здесь _ptr = CvInvoke.cvCreateImageHeader (новый размер (cols, rows), CvDepth, numberOfChannels); в классе Image.cs Emgu cv.And это исключение, указанное в моем вопросе. в файле program.cs. – Sisay

+0

@Sisay Я также столкнулся с той же проблемой. Вы получили решение? –

1

Была такая же проблема. Моим решением было изменить целевую платформу приложения на явно «x64». (У меня 64-битная система и 64-битные библиотеки)