Android 는 OpenCV 를 기반 으로 이미지 탈색 을 실현 합 니 다.

탈색
Imgproc.cvtColor(rgb, gray, Imgproc.COLOR_RGB2GRAY)는 이미지 탈색 을 신속하게 실현 할 수 있 으 며 간단 한 계산 을 통 해 3 채널 이미 지 를 단일 채널 이미지 로 전환 할 수 있 습 니 다.전형 적 인 그 레이스 케 일 변환 공식 은 다음 과 같 습 니 다.

그러나 변 환 된 그림 은 대비 도 를 잃 어 버 려 색상 을 구분 할 수 없 는 문제 가 있 습 니 다.OpenCV 는 그림 의 대비 도 를 최대한 유지 하기 위해 다른 탈색 방법 인 Photo.decolor 를 제공 합 니 다.

의 원리
논문 상세 정보:www.cse.cuhk.edu.hk/~leojia/pro..
논문 PDF:www.computer.org/csdl/pds/ap..
간단하게 R/G/B 선형 조합 을 사용 하 는 것 보다 작 가 는 더욱 복잡 한 여러 가지 의합 을 구 조 했 고 벡터 공간의 기 저 는[r,g,b,rg,rb,gb,r2,g2,b2]이 며 핵심 은 그 레이스 케 일 함 수 를 구 하 는 것 이다.

API

public static void decolor(Mat src, Mat grayscale, Mat color_boost) 
4.567917.매개 변수 1:src,8 비트 3 채널 그림 을 입력 하 십시오4.567917.매개 변수 2:grayscale,출력 8 비트 단일 채널 그 레이스 케 일인자 3:colorboost,8 비트 3 채널 그림 출력.대비 도가 강 화 된 그림 입 니 다조작 하 다.

/**
 *   
 * author: yidong
 * 2020/12/5
 */
class DecolorActivity : AppCompatActivity() {

    private val mBinding: ActivityDecolorBinding by lazy {
        ActivityDecolorBinding.inflate(layoutInflater)
    }

    private val mList = mutableListOf<ImageTextObject>()
    private lateinit var mAdapter: ImageTextAdapter

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(mBinding.root)
        mAdapter = ImageTextAdapter(this, mList)
        mBinding.container.adapter = mAdapter
        val bgr = Utils.loadResource(this, R.drawable.ceil)
        val rgb = Mat()
        Imgproc.cvtColor(bgr, rgb, Imgproc.COLOR_BGR2RGB)
        val gray = Mat()
        val dst = Mat()
        val boost = Mat()
        mBinding.isLoading = true
        GlobalScope.launch(Dispatchers.IO) {
            Imgproc.cvtColor(rgb, gray, Imgproc.COLOR_RGB2GRAY)
            Photo.decolor(rgb, dst, boost)
            launch(Dispatchers.Main) {
                mList.add(ImageTextObject(rgb, "  "))
                mList.add(ImageTextObject(gray, "RGB2GRAY"))
                mList.add(ImageTextObject(dst, "DeColor"))
                mList.add(ImageTextObject(boost, "ColorBoosting"))
                mAdapter.notifyItemRangeInserted(0, 4)
                mBinding.isLoading = false
            }
        }
    }
}
효과.
각각 decolor 와 RGB2GRAY 로 구현 되 는 탈색 효과 도 는 대비 도와 색상 보존 에 있어 서 효과 차이 가 크다.

소스 코드
github.com/onlyloveyd/…
이상 은 안 드 로 이 드 가 OpenCV 를 기반 으로 이미지 탈색 을 실현 하 는 상세 한 내용 입 니 다.안 드 로 이 드 OpenCV 이미지 탈색 에 관 한 자 료 는 다른 관련 글 을 주목 하 세 요!

좋은 웹페이지 즐겨찾기