alkee-skia / mars-processor

issue tracker for MARS processor
1 stars 0 forks source link

mask value 변경 후 mesh generation 이상 #53

Closed jhpark-rs closed 3 years ago

jhpark-rs commented 3 years ago

종전 bit mask 방식으로 lesion 가장자리의 색번짐 현상을 해결하기 어려워 byte value를 사용하는 방식으로 수정하였습니다. 수정 후 GetMesh(...) 함수의 6번째 인자 inTargetByteValue 가 작은 값을 갖는 값을 경우, 그보다 큰 값을 갖는 lesion 영역까지 모두 포함한 mesh를 생성하는 것을 확인하였습니다.

alkee-skia commented 3 years ago

segmentation volume source 의 bit-mask 를 이용하기 때문이 아닐까 합니다. source mask 의 해당 bit 가 채워져있는 경우 함께 extract 되기 때문에, 입력값으로 1 << lesionNumber 와 같이 사용하신다면 겹쳐(중복) 생성되는 것은 피할 수 있지 않을 까 싶습니다.(테스트 코드에서도 그와같이 사용했었습니다.) 이 문제가 아니라면, 숭실대와 함께 이야기 해보아야 할 것 같습니다.

    unsigned char ucByteValue = 1<<5;
// ...

// test mask volume 생성
    for(int row=0; row<iHeight; row++)
    {
        for(int col=0; col<iWidth; col++)
        {
            int iSIdx = row*imgData->widthStep + col;
            int iDIdx = row*iWidth + col;
            unsigned char* pucSVal = (unsigned char*)(imgData->imageData + iSIdx);
            if(pucSVal[0] != 0)
                ppucVolData[idx][iDIdx] |= ucByteValue;
        }
    }

// ...

// mesh 얻기
pCIMeshGen->GetMesh(CiMesh, bInterpolationFlag, bSmoothingFlag, bDecimationFlag, bMeterScaleFlag, ucByteValue, &errNo);
jhpark-rs commented 3 years ago

segmentation volume source 의 bit-mask 를 이용하기 때문이 아닐까 합니다.

저도 그렇게 예상합니다. 다시 예전 처럼 bit mask 형태로 변환하려면 실행 시간도 추가되고, 불필요한 메모리 사용도 생기니 이 건은 개발 편의상 숭실대 쪽에 수정 요청해주시면 좋겠습니다.

jhpark-rs commented 3 years ago

v1989에서 201211_MeshGen_API 적용하여 문제 해결하였습니다.

Dalaway commented 3 years ago

Lesion 1 to 7 3D Lesion Mesh lesion3

Lesion 1부터 7까지 3D 뷰어로 확인 결과 정상 분리되어 있습니다. 수정 확인하였습니다.