0
이미지는 회색 음영으로 덮여 있지만 BufferedImage.TYPE_3BYTE_BGR
때문에 세 개의 타일로 표시됩니다.매트를 회색조 이미지로 변환하는 openCV
.TYPE_BYTE_GRAY가 작동하지 않습니다.
어떻게하면 그레이 스케일 이미지 하나만 표시 할 수 있습니까?
public void matToBufferedImage(Mat matRGB){
Mat mGray = new Mat();
Imgproc.cvtColor(matRGB, mGray, Imgproc.COLOR_BGR2GRAY);
int width = mGray.width(), height = mGray.height(), channels = mGray.channels();
byte[] source = new byte[width * height * channels];
mGray.get(0, 0, source);
image = new BufferedImage(width, height, BufferedImage.TYPE_3BYTE_BGR);
final byte[] target = ((DataBufferByte) image.getRaster().getDataBuffer()).getData();
System.arraycopy(source, 0, target, 0, source.length);
}
그것은 비디오 캡처 및 인식이다. 코드가 그렇게 작동하거나 정지 이미지 만 작동합니까? –
비디오는 이미지 모음 일뿐입니다. 효과가있을 것입니다. 왜 너 자신을 보지 그래? – Ultraviolet