http://www.mathworks.com/help/toolbox/images/ref/rgb2gray.html에 따라 Java에서 Matlab의 rgb2gray
을 구현하려고합니다. 다음 코드를 가지고 있습니다 :Java에서 Matlab의 rgb2gray 구현
이제는 회색 음영 이미지가 나타나지만 Matlab에서 얻은 것보다 너무 어둡습니다. AFAIK, 이미지를 그레이 스케일로 변환하는 가장 쉬운 방법은 TYPE_BYTE_GRAY 유형의 BufferedImage를 가지고 있으며 TYPE_INT_ (A) RGB의 BufferedImage 픽셀을 복사하는 것입니다. 그러나이 방법조차도 Matlab의 그레이 스케일보다 어둡게 이미지를 제공합니다. 또한 RescaleOp
을 사용해 보았습니다. 그러나 RescaleOp에서 픽셀 당 회색조를 설정하지는 않습니다.
추가 테스트로서 Matlab이 Java에서 제작 한 이미지 행렬을 인쇄합니다. Java에서는 6316128 6250335 6118749 6118749 6250335 6447714와 같은 수치를 얻었지만 Matlab에서는 116 117 119 120 119 115 (두 행렬의 처음 6 자리 숫자)와 같은 값만 얻습니다.
Matlab과 비슷한 출력을 얻으려면 어떻게해야합니까?
안녕하세요, 감사합니다. 이것은 내 회색 음영 문제를 해결하는 것으로 보인다. 하지만 Matlab의 설명서를 어디에서 수정했는지 궁금합니다. 다른 곳에서 언급 한 것을 찾을 수없는 것 같습니다. – skytreader
@skytreader, 잘 알려진 수식이며 참조는 어디 에나 있습니다. http://en.wikipedia.org/wiki/Luma_(video)#Rec._601_luma_versus_Rec._709_luma_coefficients. 삭제 된 대답은 샘플 계산이 포함되었지만 올바르지는 않았지만 올바른 상수를 대입하면 정확하게 맞았습니다. –