게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
유니티 .Net, Unity.Textue -> Bitmap 질문드립니다.
게시물ID : programmer_22486짧은주소 복사하기
작성자 : 아안돼
추천 : 0
조회수 : 709회
댓글수 : 2개
등록시간 : 2018/07/07 12:37:35
안녕하세요.  
제가 다른 라이브러리를 연동하던 과정에서 잘 모르는게 있어서 질문드립니다.

라이브러리는 C++로 구성되어있으며, C# Wrapper 를 제공하고있습니다.
이 C# wrapper를 통해, 유니티와 연동하려고 하고있는데요..

간단하게 라이브러리를 설명드리면, 카메라를 통해 얼굴을 인식하는 라이브러리인데, 
카메라 영상을 통해 얼굴이 인식되면, 인식 완료 콜백이 부르고, 그 콜백은 System.Drawing.Bitmap으로 된 파라미터를 갖고있습니다.

문제는 카메라 영상을 업데이트하기위해, System.Drawing.Bitmap 데이터를 NewFrame에 전달해야하는데,

유니티는 System.Drawing.Bitmap 을 지원하지않아서, 제가 따로 plugin에 추가했단 것입니다..

카메라 스트림을 통해 나오는 영상은 Unity.Texture로 구성되어있고, 이것을 System.Drawing.Bitmap으로 변환을 해야하는데..
변환 방법을 잘 모르겠습니다 .. 구글링을 해도 잘 모르겠네요 ..ㅠㅠ

아래 방법은 변환이 성공한 방법이긴 한데, 너무 느립니다.
실시간 카메라 영상 스트림을 해야해서 .. 혹시 다른 방법 알고 계신 분 있으시면 조언 부탁드립니다.

감사합니다.





       Texture2d tex2D = color_frame.material.mainTexture as Texture2D;
                    System.Drawing.Bitmap accordImage = new System.Drawing.Bitmap(tex2D.width, tex2D.height);

                    // copy our texture pixels to that system bitmap 

                    for (int x = 0; x < accordImage.Width; x++)
                    {
                        for (int y = 0; y < accordImage.Height; y++)
                        {
                            var c = (Color32)tex2D.GetPixel(x, y);
                            var nc = System.Drawing.Color.FromArgb(c.r, c.g, c.b, c.a);
                            accordImage.SetPixel(x, y, nc);
                        }
                    }

                    faceWrapper.newFrame(0, accordImage);

전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호