How to get image from usb camera/webcam using OpenCV in Java, 자바 openCV 이용하여 usb 카메라에서 이미지 저장, c++,영상처리,imageProcessing
보드와 연결된 카메라에서 OpenCV를 이용하여 이미지 캡처~
단일 이미지 외에 여러 프레임으로 쭉 이어지는 실시간 영상 출력 방법 ( 여기 ) - 아직
//처리과정
//1. VideoCapture 객체를 만들어 카메라와 연결해준다.
//2. 만든 객체에서 카메라 세팅을 설정한다.
//3. 찍는다.
//4. 다 끝나면 할당해제
//Process
//1. Make VideoCapture object and connect to usb camera
//2. Set camera param to the object if you need
//3. Take image
//4. Release all
Code.. lemme see code
코드.. 코드를 보자
public class CameraECon /*extends ICamera*/ {
protected VideoCapture capture;
protected Mat frame;
public void execCameraTest() {
// video test
// this.test();
if (this.capture == null)
this.connect();
if (this.isConnected())
{
//this.setting(new SettingCameraECon());
this.shoot();
this.saveFrame();
this.disconnect();
}
}
@Override
public boolean connect() {
this.capture = new VideoCapture();
this.capture.open(0);
if (this.capture.isOpened())
return true;
else
return false;
}
@Override
public void disconnect() {
if (this.capture.isOpened())
this.capture.release();
this.capture = null;
if (!this.frame.empty())
this.frame.release();
this.frame = null;
}
@Override
public void shoot() {
if (this.frame == null)
this.frame = new Mat((int)this.capture.get(Videoio.CV_CAP_PROP_FRAME_WIDTH),
(int)this.capture.get(Videoio.CV_CAP_PROP_FRAME_WIDTH),
CvType.CV_8S);
this.capture.read(frame);
}
@Override
public boolean isConnected() {
return capture.isOpened();
}
public void saveFrame() {
if (this.frame != null)
MatUtils.saveMatImage(this.frame, "testCam/test.png"); // 경로
}
}
//Util class
public class MatUtils
{
public static void saveMatImage(final Mat src, String savePath) {
Core.normalize(src, src, 0, 255, Core.NORM_MINMAX);
//TODO change save path,
if (savePath == null)
savePath = "D:\My\Desktop\test.png";
Imgcodecs.imwrite(savePath, src);
}
}
Something else you might like...?
2019/01/16 - [Computer/General] - Path/Location of temporary files in each OS, 운영체제별 임시파일 저장 경로/위치