iOS使用OpenCV之圖像融合(二)

前言

  • 本文將介紹使用OpenCV之圖像融合

理論

線性混合操做
g(x)=(1−α)f0(x) + αf1(x)
其中α取值範圍0~1之間,f0(x)表示一張圖像x位置像素點的顏色數據,f1(x)表示另外一張圖像x位置像素點的顏色數據git

核心思路

一、判斷兩張圖片大小是否一致
二、UIImage轉換
三、判斷類型是否一致
四、圖片疊加處理addWeighted(src, alpha, src2, 1.0-alpha, 0.0, dst)
五、轉換爲UIImagegithub

代碼演示

/* 圖片混合,前提條件兩張圖片必須大小和類型均一致 */
- (UIImage*)kj_opencvBlendImage:(UIImage*)image alpha:(double)alpha{
    if (!CGSizeEqualToSize(self.size, image.size)) {
        image = [image kj_BitmapChangeImageSize:self.size];
    }
    cv::Mat src,src2,dst;
    UIImageToMat(self,src,true);
    UIImageToMat(image,src2,true);
    if (src.type() != src2.type()) {
        return self;
    }
    addWeighted(src, alpha, src2, 1.0-alpha, 0.0, dst);
    
    return kMatToUIImage(dst);
}
複製代碼

示例圖

系列文章關聯

一、如何在 iOS 工程中使用 OpenCV
二、iOS使用OpenCV之調整圖片亮度和對比度(一)
三、iOS使用OpenCV之圖像融合(二)
四、iOS使用OpenCV之濾波處理(三)算法

接下來我會慢慢補充Opencv的相關文章,暫時已將常見的圖片處理和圖片算法封裝出來,有須要的朋友能夠去pod 'KJExtensionHandler/Opencv'markdown

如何在 iOS 工程中使用 OpenCV介紹就到此完畢,後面有相關再補充,寫文章不容易,還請點個**小星星**傳送門

相關文章
相關標籤/搜索