1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        基于OpenCV的圖像強度操作

        共 7035字,需瀏覽 15分鐘

         ·

        2020-12-23 16:41

        點擊上方小白學(xué)視覺”,選擇加"星標"或“置頂

        重磅干貨,第一時間送達

        01. 什么是圖像強度操作


        • 更改任何通道中的像素值

        • 對圖像的數(shù)學(xué)運算

        • 亮度變化

        • 對比度變化

        • 伽瑪操縱

        • 直方圖均衡

        • 圖像預(yù)處理中的濾波等增強

        使用OpenCV加載圖像

        import numpy as npimport cv2from matplotlib import pyplot as pltimg = cv2.imread(folder_path + "imgs/chapter3/man.jpg", 0);plt.imshow(img, cmap = "gray");plt.show()

        使用Opencv向輸入圖像添加常數(shù)

        img = cv2.imread(folder_path + "imgs/chapter3/man.jpg", 0);##########################FOCUS############################img = cv2.add(img, 120);###########################################################plt.imshow(img, cmap = "gray");plt.show()

        使用Opencv減去常數(shù)以輸入圖像

        img = cv2.imread(folder_path + "imgs/chapter3/man.jpg", 0);##########################FOCUS############################img = cv2.subtract(img, 120);####################################################################plt.imshow(img, cmap = "gray");plt.show()

        02. 圖像去均值化

        方法1

        • 將圖像拆分為其通道。

        • 對于每個通道,計算其平均值。

        • 從該通道中的每個像素中減去均值

        方法2(用于深度學(xué)習(xí))

        將所有圖像分割成各自的通道,對于所有圖像的每個通道:

        • 為每個圖像找到該通道的均值。

        • 查找所有計算出的均值的均值。

        應(yīng)用領(lǐng)域1:批標準化的一部分

        # Grayscale imageimport numpy as npimport cv2from matplotlib import pyplot as pltimg = cv2.imread(folder_path + "imgs/chapter3/man.jpg", 0); # read the image as grayscale
        # cv2.subtractmean = np.mean(img);img_out = cv2.subtract(img, mean);
        f = plt.figure(figsize=(15,15))f.add_subplot(1, 2, 1).set_title('Original Image');plt.imshow(img, cmap = "gray");f.add_subplot(1, 2, 2).set_title('Mean subtracted image');plt.imshow(img_out, cmap = "gray");plt.show()

        應(yīng)用領(lǐng)域1:負片

        灰度負片

        # negative of grayscaleimport numpy as npimport cv2from matplotlib import pyplot as pltimg = cv2.imread(folder_path + "imgs/chapter3/man.jpg", 0); # read the image as grayscale
        #cv2.subtractimg_out = cv2.subtract(255, img);
        f = plt.figure(figsize=(15,15))f.add_subplot(1, 2, 1).set_title('Original Image');plt.imshow(img, cmap = "gray");f.add_subplot(1, 2, 2).set_title('Negative image');plt.imshow(img_out, cmap = "gray");plt.show()

        RGB圖像負片

        # negative of rgb imagesimport numpy as npimport cv2from matplotlib import pyplot as pltimg = cv2.imread(folder_path + "imgs/chapter3/castle.png", -1); img_out = 255 - img;
        f = plt.figure(figsize=(15,15))f.add_subplot(1, 2, 1).set_title('Original Image');plt.imshow(img[:,:,::-1]);f.add_subplot(1, 2, 2).set_title('Negative image');plt.imshow(img_out[:,:,::-1]);plt.show()


        03. 兩幅圖像的融合

        直接融合

        # Direct addingimport numpy as npimport cv2from matplotlib import pyplot as plt
        img1 = cv2.imread(folder_path + "imgs/chapter3/castle.png", -1); img1 = cv2.resize(img1, (256, 256));img2 = cv2.imread(folder_path + "imgs/chapter3/tessellate.jpg", -1);img2 = cv2.resize(img2, (256, 256));
        img_out = cv2.add(img1, img2);
        f = plt.figure(figsize=(8,8))plt.imshow(img_out[:,:,::-1]);plt.show()

        加權(quán)融合

        # cv2.addWeighted
        import numpy as npimport cv2from matplotlib import pyplot as pltimg1 = cv2.imread(folder_path + "imgs/chapter3/castle.png", -1); img1 = cv2.resize(img1, (256, 256));img2 = cv2.imread(folder_path + "imgs/chapter3/tessellate.jpg", -1);img2 = cv2.resize(img2, (256, 256));
        # Like a faint watermarkimg_out = cv2.addWeighted(img1,0.7,img2,0.3,0);
        f = plt.figure(figsize=(8,8))plt.imshow(img_out[:,:,::-1]);plt.show()


        04. 圖像求差
        import numpy as npimport cv2from matplotlib import pyplot as pltimg1 = cv2.imread(folder_path + "imgs/chapter3/background.png", -1); img2 = cv2.imread(folder_path + "imgs/chapter3/foreground.png", -1);
        img_out = cv2.subtract(img2, img1);
        f = plt.figure(figsize=(15,10))f.add_subplot(2, 2, 1).set_title('Background Image');plt.imshow(img1[:, :, ::-1])f.add_subplot(2, 2, 2).set_title('Background image with some object');plt.imshow(img2[:, :, ::-1])f.add_subplot(2, 2, 3).set_title('Subtracted image');plt.imshow(img_out[:, :, ::-1])plt.show()




        05. 亮度變化
        • 發(fā)光或反射光的質(zhì)量或狀態(tài)

        • 亮度是一個相對術(shù)語。這取決于您的視覺感知。

        • 亮度可以定義為光源相對于我們所比較的光源輸出的能量。

        import numpy as npimport cv2from matplotlib import pyplot as pltimg = cv2.imread(folder_path + 'imgs/chapter3/outdoor.jpg')
        value = 100 #Increase or decrease brightness by this value
        hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)hsv[:,:,2] = cv2.add(hsv[:,:,2], value)
        img_out = cv2.cvtColor(hsv, cv2.COLOR_HSV2BGR)
        f = plt.figure(figsize=(15,15))f.add_subplot(1, 2, 1).set_title('Original Image');plt.imshow(img[:, :, ::-1])f.add_subplot(1, 2, 2).set_title('Brightness manipulated image');plt.imshow(img_out[:, :, ::-1])plt.show()



        06. 對比度
        • 對比度是使對象(或其在圖像或顯示器中的表示形式)與眾不同的亮度或顏色差異。

        • 可視化為圖像中最大和最小像素強度之間的差異。

        • 對比度由同一視野內(nèi)物體的顏色和亮度差異決定。

        from PIL import Image, ImageEnhancefrom matplotlib import pyplot as plt
        img = Image.open(folder_path + "imgs/chapter3/outdoor.jpg");enhancer = ImageEnhance.Contrast(img)out = enhancer.enhance(factor=1.25)
        f = plt.figure(figsize=(15,15))f.add_subplot(2, 1, 1).set_title('Original Image');plt.imshow(img)f.add_subplot(2, 1, 2).set_title('Contrast manipulated image');plt.imshow(out)plt.show()

        07. 伽瑪矯正
        • 伽瑪校正是一種用于對亮度進行編碼和解碼的非線性操作。

        • 所有彩色和灰度數(shù)字圖像文件都包含伽瑪數(shù)據(jù)。

        • Gamma涉及在數(shù)字靈敏度和人眼靈敏度之間進行轉(zhuǎn)換,一方面提供了許多優(yōu)勢,另一方面卻增加了復(fù)雜性。

        • 伽瑪可優(yōu)化中間調(diào)的對比度和亮度。

        import numpy as npimport cv2from matplotlib import pyplot as pltimg = cv2.imread(folder_path + 'imgs/chapter3/indoor.jpg')
        # Apply Gamma=2.2 on the normalised image and then multiply by scaling constant (For 8 bit, c=255)
        # Normalize image, pixels to 0-1# Multiple by gamma# Re-factor the image pixels to have value from 0-255
        img_out = np.array(255*(img/255)**2.2,dtype='uint8')
        f = plt.figure(figsize=(15,15))f.add_subplot(2, 1, 1).set_title('Original Image');plt.imshow(img[:, :, ::-1])f.add_subplot(2, 1, 2).set_title('Gamma manipulated image');plt.imshow(img_out[:, :, ::-1])plt.show()


        08. 直方圖均衡

        直方圖

        • 直方圖顯示事物發(fā)生頻率的圖表。

        • 圖像像素直方圖表示具有特定強度值的像素的頻率。

        直方圖均衡

        • 直方圖均衡用于增強對比度。

        • 此方法增加了圖像的整體對比度。

        import numpy as npimport cv2from matplotlib import pyplot as pltimg = cv2.imread(folder_path + "imgs/chapter3/outdoor.jpg", 0)
        # Ravel falttens the 2d array to 1d array# 256 - total number of binsplt.hist(img.ravel(),256,[0,256])
        plt.title("Histogram for original image")plt.show()


        import numpy as npimport cv2from matplotlib import pyplot as pltimg = cv2.imread(folder_path + "imgs/chapter3/outdoor.jpg", 0)
        # cv2.equalizeHistimg_out = cv2.equalizeHist(img)
        f = plt.figure(figsize=(15,15))f.add_subplot(2, 1, 1).set_title('Original Image');plt.imshow(img, cmap="gray")f.add_subplot(2, 1, 2).set_title('Histogram equalized image');plt.imshow(img_out, cmap="gray")plt.show()


        代碼鏈接:https://github.com/Tessellate-Imaging/monk_v1/blob/master/study_roadmaps/3_image_processing_deep_learning_roadmap/1_image_processing_basics/3) Image Intensity manipulation.ipynb


        下載1:OpenCV-Contrib擴展模塊中文版教程
        在「小白學(xué)視覺」公眾號后臺回復(fù):擴展模塊中文教程,即可下載全網(wǎng)第一份OpenCV擴展模塊教程中文版,涵蓋擴展模塊安裝、SFM算法、立體視覺、目標跟蹤、生物視覺、超分辨率處理等二十多章內(nèi)容。

        下載2:Python視覺實戰(zhàn)項目31講
        小白學(xué)視覺公眾號后臺回復(fù):Python視覺實戰(zhàn)項目31講,即可下載包括圖像分割、口罩檢測、車道線檢測、車輛計數(shù)、添加眼線、車牌識別、字符識別、情緒檢測、文本內(nèi)容提取、面部識別等31個視覺實戰(zhàn)項目,助力快速學(xué)校計算機視覺。

        下載3:OpenCV實戰(zhàn)項目20講
        小白學(xué)視覺公眾號后臺回復(fù):OpenCV實戰(zhàn)項目20講即可下載含有20個基于OpenCV實現(xiàn)20個實戰(zhàn)項目,實現(xiàn)OpenCV學(xué)習(xí)進階。

        下載4:leetcode算法開源書
        小白學(xué)視覺公眾號后臺回復(fù):leetcode即可下載。每題都 runtime beats 100% 的開源好書,你值得擁有!




        交流群


        歡迎加入公眾號讀者群一起和同行交流,目前有SLAM、三維視覺、傳感器、自動駕駛、計算攝影、檢測、分割、識別、醫(yī)學(xué)影像、GAN、算法競賽等微信群(以后會逐漸細分),請掃描下面微信號加群,備注:”昵稱+學(xué)校/公司+研究方向“,例如:”張三?+?上海交大?+?視覺SLAM“。請按照格式備注,否則不予通過。添加成功后會根據(jù)研究方向邀請進入相關(guān)微信群。請勿在群內(nèi)發(fā)送廣告,否則會請出群,謝謝理解~


        瀏覽 46
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        分享
        舉報
        評論
        圖片
        表情
        推薦
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        分享
        舉報
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            内射大奶少妇 | 巨胸狂喷奶水视频www网站免费 | 日本xxxxxxxxx8泡妞 | 无码人妻精品一区二区蜜桃视频 | 成人片黄网站色大片免费视频 | 我疯狂挺进她身体口述故事 | 小雪好湿好紧太爽视频 | x88AV吊钟奶熟女 | 性爱免费网站 | 欧美日韩精品欧美黑xB一区 |