내가 사용 권장 발견 답변의 일부 자르려면 :(C#을위한 OpenCV의) Emgu에 투자 수익 (ROI) 할 수있는 매트
frame = ...
Rectangle ROI = ...
Mat crop = new Mat(frame, ROI)
을하지만이 Emgu 3.x의에서 wokr하지 않는 것을
내가 사용 권장 발견 답변의 일부 자르려면 :(C#을위한 OpenCV의) Emgu에 투자 수익 (ROI) 할 수있는 매트
frame = ...
Rectangle ROI = ...
Mat crop = new Mat(frame, ROI)
을하지만이 Emgu 3.x의에서 wokr하지 않는 것을
나는 그것을 알아 냈다. 매트를 자르려면, 당신은 버퍼로 이미지 객체를 사용하고 .ROI 속성을 사용해야합니다 :
Mat crop_color_frame(Mat input, Rectangle crop_region)
{
/*
* TODO(Ahmed): Figure out why I had to copy this into this class.
* */
Image<Bgr, Byte> buffer_im = input.ToImage<Bgr, Byte>();
buffer_im.ROI = crop_region;
Image<Bgr, Byte> cropped_im = buffer_im.Copy();
return cropped_im.Mat;
}
아메드 , 작동하지 않는 것은 무엇입니까? 데이터가있는 매트를 가져 오지 않습니까? "프레임"이란 "프레임"이란 무엇입니까? ROI가 우연히 RotatedRect입니까? 작동하지 않을 RotatedRect를 사용하고 있다면 당신이 옳기 때문입니다. 프레임이 매트 인 경우 작업을 잘 수행해야합니다. 작동하지 않는 것에 대한 세부 정보가 필요합니다.
아메드을, 당신은 정말 그냥 매트를 만들> 이미지 <을 만들 필요가 없습니다. 다음보십시오 : 당신이 RotatedRect을 가지고 있지 않기 때문에
Mat myNewMat = new Mat(input, crop_region);
당신이 똑바로 사각형으로 회전 된 사각형을 번역 할 필요가 없습니다. 따라서 기존 매트와 사각형에서 새로운 매트를 만들 수 있습니다.
이렇게하면 코드가 간단해질 수 있습니다.
더그
구문 오류 일 뿐이므로 C#에서 프레임을 자르는 올바른 방법을 찾았습니다. – Ahmed
구문 오류가 발생했습니다. – AeroClassics