iOS圖片去陰影

借助opencv庫(kù),實(shí)現(xiàn)將圖片中的陰影去掉,記錄下實(shí)現(xiàn)代碼,如下

+(UIImage*)removeShadow:(UIImage*)processedImage{
    cv::Mat src = [MMOpenCVHelper cvMatFromAdjustedUIImage:processedImage];
    //1.將圖像轉(zhuǎn)為灰度圖
    cv::Mat gray;
    cv::cvtColor(src, gray, cv::COLOR_BGR2GRAY);
    //定義腐蝕和膨脹的結(jié)構(gòu)化元素和迭代次數(shù)
    cv::Mat element = cv::getStructuringElement(cv::MORPH_RECT, cv::Size(3, 3));
    int iteration = 9;
    //2.將灰度圖進(jìn)行膨脹操作
    cv::Mat dilateMat;
    cv::morphologyEx(gray, dilateMat, cv::MORPH_DILATE, element, cv::Point(-1, -1), iteration);
    //3.將膨脹后的圖再進(jìn)行腐蝕
    cv::Mat erodeMat;
    cv::morphologyEx(dilateMat, erodeMat, cv::MORPH_ERODE, element, cv::Point(-1, -1), iteration);
    //4.膨脹再腐蝕后的圖減去原灰度圖再進(jìn)行取反操作
    cv::Mat calcMat = ~(erodeMat - gray);
    //5.使用規(guī)一化將原來背景白色的改了和原來灰度圖差不多的灰色
    cv::Mat removeShadowMat;
    cv::normalize(calcMat, removeShadowMat, 0, 200, cv::NORM_MINMAX);
    //轉(zhuǎn)換成8bit圖像顯示
    convertScaleAbs(removeShadowMat, removeShadowMat);
    UIImage *resultImage=[MMOpenCVHelper UIImageFromCVMat:removeShadowMat];
    return resultImage;
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容