본문 바로가기
개발/Unity

Unity) 이미지 픽셀 (Image Pixel) 구분하기

by 테샤르 2020. 8. 10.

이미지 픽셀 (Image Pixel) 구분하기

특정 상황에서 이미지의 Pixel을 구분해서 데이터를 처리해야 하는 경우가 종종 생긴다.

어떤 모양(Shape)을 처리하는 과정에서는 이미지를 읽어서 자동화 하는 과정에서 사용하면 굉장히 편할듯하다.

이미지를 넣고 데이터화를 시키는 과정을 거치게되면 해당 그림 만큼 데이터화가 가능하다.

읽은 데이터는 다음과 같다.

이미지는 인터넷에서 아무거나 추출했다. 실제 처리한 데이터는 다음과 같다.

반응형

Texture를 읽고 해당 데이터의 width, height 를 GetPixel로 Color 데이터를 추출해서 해당 Color 데이터가 특정 기준과 비교를 하는 과정을 처리 했다.

이미지를 읽는 과정에서 Read/Write Enabled 설정을 True 로 변경해야 가능하다.

 

이미지를 기준으로 이미지의 width * height 를 기준으로 픽셀을 가지고와서 특정 기준의 값과 비교해서 

Cube를 생성해서 확인한 결과이다.

 

< 코드 >

  private void PixelReader()
    {
        // Load image
        Texture2D image = (Texture2D)Resources.Load("Texture/test1");
        Debug.Log(image);

        if(null == image){
            return;
        }

        this.m_List = new List<InfoPixel>();

        // Iterate through it's pixels
        for (int i = 0; i < image.width; i++)
        {
            for (int j = 0; j < image.height; j++)
            { 
                Color pixel = image.GetPixel(i, j);

                if (pixel.r < BLACK_VALUE && pixel.g < BLACK_VALUE && pixel.b < BLACK_VALUE ){
                    this.m_List.Add( new InfoPixel(new Vector2(i,j)));
                }
            }
        }
    }

 

 

Unity Texture2d.GetPixels : [링크]

 

Unity - Scripting API: Texture2D.GetPixels

This method gets pixel data from the texture in CPU memory. Texture.isReadable must be true. The array contains the pixels row by row, starting at the bottom left of the texture. The size of the array is the width × height of the mipmap level. Each pixel

docs.unity3d.com

 

 

 

 

반응형

댓글