JavaCV работает/пишет в BufferdImage после обнаружения лица

Я успешно обнаруживаю лица с помощью JavaCV, это не совсем точно, но на данный момент достаточно хорошо.

Однако в целях тестирования и с перспективой на будущее (это только часть большого группового проекта) я хочу написать прямоугольники на лицах, используя BufferedImage и Graphics.drawRect().

Я знаю, что вы можете рисовать прямоугольники на лицах, используя JavaCV со статическими методами, но это не то, что мне нужно/хочется делать. Если я после процесса сканирования попытаюсь загрузить изображение с помощью ImageIO и попытаюсь записать в него ректы, приложение завершится с нативной ошибкой.

Есть ли какой-нибудь способ, которым я могу дать команду openCV "выпустить" изображение (потому что я думаю, что это источник проблемы, что opencv не выпускает файл изображения.)?

заранее спасибо

редактировать: код ошибки:

# A fatal error has been detected by the Java Runtime Environment:
#
#  SIGSEGV (0xb) at pc=0x00007fc705dafac4, pid=8216, tid=140493568964352
#
# JRE version: 7.0_21-b02
# Java VM: OpenJDK 64-Bit Server VM (23.7-b01 mixed mode linux-amd64 compressed oops)
# Problematic frame:
# C  [libjpeg.so.8+0x1eac4]  jpeg_save_markers+0x84

редактировать:

 cvReleaseImage(inputImage);
            cvReleaseImage(grayImage);
            cvClearMemStorage(storage);

тоже не помогло


person Aeefire    schedule 01.06.2013    source источник


Ответы (2)


Вы можете рисовать простые прямоугольники без Graphics.drawRect(); Есть хороший способ установить пиксели BufferedImage в java.

try { BufferedImage img = ImageIO.read(new File("img.png")); int x, y; int width, hight; Color color = Color.black; y = 50; x = 50; width = 90; hight = 90; for(int i=x;i<=width;i++){ img.setRGB(i, y, color.getRGB()); img.setRGB(i, hight, color.getRGB()); for(int i=y;i<=hight;i++){ img.setRGB(x, i, color.getRGB()); img.setRGB(width, i, color.getRGB()); } g.drawImage(img, 0, 0, this); } catch (IOException e) { System.err.println("!!!IOException!!!"); }

Я надеюсь, это поможет.

Без имени

person Community    schedule 01.05.2014

Проверьте, работает ли ваша операционная система, и установите 64-разрядную версию opencv, если ваш круг работает на 64-разрядной ОС.Эта ссылка может вам очень помочь

person Don Chakkappan    schedule 02.05.2014