色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

OpenCV4中聯通組件分析的一個缺點

OpenCV學堂 ? 來源:OpenCV學堂 ? 2024-01-04 15:51 ? 次閱讀

數據集

最近別人給了我一個生物數據分割的標注數據集,讓我訓練一下,發現這個數據集比較詭異,圖像格式是tif的16位的浮點數,OpenCV讀取過來要顯示得先轉換,然后它的Mask是PNG的帶透明通道,最坑人的是Mask標記都是1、只有相互連接的對象標記才相互不同。官方給出的原始圖像解析以后是這樣:

0c28d444-aad6-11ee-8b88-92fbcf53809c.png

OpenCV讀取顯示圖像樣本

OpenCV讀取tif格式16位的圖像在于imread的第二個參數,默認情況下會轉換為BGR彩色八位字節的圖像,如果這樣就是一片漆黑;這里選擇為-1表示不改變原圖像的通道數據信息,這樣就可以讀取原始圖像數據了,然后轉換為32f的,再歸一化到0~1之間,直接顯示即可。代碼如下:

importnumpyasnp
img=cv.imread("D:/11111.tif",-1)#uint16
img_16=img.astype(np.float32)
cv.normalize(img_16,img_16,0,1,cv.NORM_MINMAX)
img_16.astype(np.float32)
result=np.uint8(img_16*255)
cv.imwrite('D:/tensor_cv2.jpg',result)

0c32a4a6-aad6-11ee-8b88-92fbcf53809c.jpg

OpenCV讀取顯示Mask圖像

Mask圖像是帶透明通道的RGBA的圖像,但是實際上所有的標注信息只存在于red通道中,所以讀取以后,直接拆分通道,然后把red通道數據作為灰度圖像處理,因為灰度值太低了,顯示的時候我給擴大了點倍數,直接把灰度圖像扔到聯通組件掃描的函數中,然后就可以看到結果了。相關代碼如下:

importnumpyasnp
img=cv.imread("D:/11111.png")#uint16
bb,gg,rr=cv.split(img)
h,w,c=img.shape
print(img.shape,img.dtype)
numOfcons,labels=cv.connectedComponents(rr)

colors=[]
foriinrange(numOfcons):
b=np.random.randint(0,256)
g=np.random.randint(0,256)
r=np.random.randint(0,256)
colors.append((b,g,r))

colors[0]=(0,0,0)
image=np.zeros((h,w,3),dtype=np.uint8)
forrowinrange(h):
forcolinrange(w):
image[row,col]=colors[labels[row,col]]

cv.imshow("coloredlabels",image)
cv.imwrite("D:/opencv_labels.png",image)
cv.imshow("bgr",rr*100)
cv.waitKey(0)
cv.destroyAllWindows()

標記的Mask信息原圖

0c3b9584-aad6-11ee-8b88-92fbcf53809c.jpg

基于聯通組件查找以后的彩色顯示(注意白色粘連)

0c49233e-aad6-11ee-8b88-92fbcf53809c.png

對比與解決

對比之后發現,OpenCV中聯通組件掃描以后把不同標簽的樣本粘連在一起了,這個是因為OpenCV尋找聯通組件只分為兩種值0為背景,非0就作為前景,不做灰度級別區分的聯通域識別,所以導致了粘連。這個時候,只要用skimage庫的函數來替換OpenCV的聯通組件掃描就可以避免粘連了,因為skimage庫的聯通組件掃描支持獨立標簽分級。代碼演示如下:

importskimage.io
importskimage.morphology

#Loadoneimageafteruncompressingmasks.zip
gt=skimage.io.imread("D:/11111.png")

#Keepfirstchannelonly
gt=gt[:,:,0]

#Labelindependentconnectedcomponents
gt=skimage.morphology.label(gt)
colors=[]
foriinrange(150):
b=np.random.randint(0,256)
g=np.random.randint(0,256)
r=np.random.randint(0,256)
colors.append((b,g,r))
colors[0]=(0,0,0)
h,w=gt.shape
image=np.zeros((h,w,3),dtype=np.uint8)
forrowinrange(h):
forcolinrange(w):
image[row,col]=colors[gt[row,col]]

#Displayimageoruseasneeded
cv.imshow("coloredlabels",image)
cv.imwrite("D:/labels.png",image)
cv.waitKey(0)
cv.destroyAllWindows()
運行結果對比 - 可以發現白色區域沒有粘連,成功分割!

0c4f4af2-aad6-11ee-8b88-92fbcf53809c.png

希望OpenCV遲早有一天可以支持這種分級的區域聯通組件掃描算法







審核編輯:劉清

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 圖像處理
    +關注

    關注

    27

    文章

    1295

    瀏覽量

    56813
  • OpenCV
    +關注

    關注

    31

    文章

    635

    瀏覽量

    41399

原文標題:新知 | OpenCV4中聯通組件分析的一個缺點

文章出處:【微信號:CVSCHOOL,微信公眾號:OpenCV學堂】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    OpenCV4.8 CUDA編程代碼教程

    OpenCV4支持通過GPU實現CUDA加速執行,實現對OpenCV圖像處理程序的加速運行,當前支持加速的模塊包括如下。
    的頭像 發表于 12-05 09:56 ?1067次閱讀
    <b class='flag-5'>OpenCV</b>4.8 CUDA編程代碼教程

    OpenCV自帶組件HighGUI怎么使用?

    將介紹OpenCV自帶組件HighGUI的簡單使用。當我們在測試算法,查看算法效果的時候,需要用到可視化,動態調參的界面,也可能需要監聽鼠標,鍵盤等的動作,這時,HighGUI就發揮大作用了,HighGUI作為
    發表于 11-05 06:54

    魯班貓0 -安裝opencv

    ON要等那么會兒,結事之后就可以make了:sudo make -j4這里就是漫長的等待,我這里大約兩小時結束結束后執行sudo make install配置#opencv4.pc
    發表于 04-09 13:29

    Yuzuki Lizard 全志V851S開發板 –編譯 OPENCV 4.5.4

    ,設定) 到此編譯成功 6、編譯出來的文件 動態庫文件 /usr/local/lib/ 文件庫 /usr/local/include/opencv4/ 注意下面步驟成功編譯出來的固件,是不含動態庫
    發表于 05-08 09:22

    CMake在Linux 6.1.1-1.0.0搜索包opencv損壞了嗎?

    我有 cmake 項目,使用以下 CMake 語句從 Yocto Linux SDK 導入 OpenCV 庫: find_package (需要OpenCV ) 在
    發表于 05-09 11:32

    中聯通公開招募3G電子渠道合作企業

    中聯通公開招募3G電子渠道合作企業      12月11日消息,中國聯通12月10日發布公告,開始面向社會公開招募社會電子渠
    發表于 12-11 09:42 ?559次閱讀

    基于opencv4和Yolo-Fastest,實現PC和單片機通信,控制步進電機捕獲目標

    效果視頻 基于opencv4和yolo,實現PC和單片機通信,控制步進電機捕獲目標
    發表于 11-23 17:36 ?16次下載
    基于<b class='flag-5'>opencv4</b>和Yolo-Fastest,實現PC和單片機通信,控制步進電機捕獲目標

    分享兩OpenCV圖像處理與分析的問題

    仔細觀察圖,可以看到兩最直接的是靶心有十字交叉線,而在OpenCV形態學處理,支持十字交叉結構元素,所以我們可以先檢測兩條線,然后獲取十字交叉結構,最后對結構進行輪廓
    的頭像 發表于 08-22 09:40 ?961次閱讀

    如何在Raspberry Pi 3上安裝OpenCV4

    今天我們將學習如何在 Raspberry Pi 3 上安裝 OpenCV4 庫,以便我們可以將其用于計算機視覺應用程序。這將允許 OpenCV 在像 Pi 這樣的便攜式設備上運行,從而打開許多可能性的大門。所以讓我們開始吧
    的頭像 發表于 09-08 16:09 ?1614次閱讀
    如何在Raspberry Pi 3上安裝<b class='flag-5'>OpenCV4</b>庫

    OpenCV4SIFT算法概述

    SIFT特征是非常穩定的圖像特征,在圖像搜索、特征匹配、圖像分類檢測等方面應用十分廣泛,但是它的缺點也是非常明顯,就是計算量比較大,很難實時,所以對些實時要求比較高的常見SIFT算法還是無法適用。
    的頭像 發表于 11-23 09:48 ?1516次閱讀

    OpenCV4源碼分析

    宏定義必須寫在函數之外,其作用域是 #define 開始,到源程序結束。如果要提前結束它的作用域則用 #undef 命令
    的頭像 發表于 02-22 10:00 ?1041次閱讀
    <b class='flag-5'>OpenCV4</b>源碼<b class='flag-5'>分析</b>

    學習OpenCV4的系統化路線圖

    OpenCV4發布測試版本開始,作者就直關注!根據自己近十年圖像處理OpenCV開發相關工作經驗,花了七月的時間,針對OpenCV4
    的頭像 發表于 07-05 11:30 ?645次閱讀
    學習<b class='flag-5'>OpenCV4</b>的系統化路線圖

    OpenCV4筆記之連通域分析

    連通:若 S 是圖像像素子集,對于任意的 。如果存在條由 S 像素組成的從 p 到 q 的通路,則稱 p 在像素集 S
    的頭像 發表于 12-25 17:16 ?1070次閱讀
    <b class='flag-5'>OpenCV4</b>筆記之連通域<b class='flag-5'>分析</b>

    OpenCV4圖像分析之BLOB特征分析

    BLOB是圖像灰度塊的種專業稱呼,更加變通點的可以說它跟我們前面二值圖像分析聯通組件類似
    的頭像 發表于 12-28 12:28 ?1423次閱讀
    <b class='flag-5'>OpenCV4</b>圖像<b class='flag-5'>分析</b>之BLOB特征<b class='flag-5'>分析</b>

    opencv-python和opencv樣嗎

    樣。OpenCV(Open Source Computer Vision Library)是開源的計算機視覺和機器學習軟件庫,它提供了大量的圖像和視頻處理功能。
    的頭像 發表于 07-16 10:38 ?1273次閱讀
    主站蜘蛛池模板: 99免费在线| 双性将军粗壮H灌满怀孕| 日韩人妻无码精品-专区| 99久久国产免费福利| 男人的天堂色偷偷| 国产精品观看视频免费完整版| 亚洲成年人影院| 麻豆成人啪啪色婷婷久久| 成年人免费观看的视频| 强奷表妺好紧2| 国产毛片女人18水多| 一级做a爰片久久毛片苍井优| 女教师公车痴汉在线播放| 成人在线精品视频| 亚洲一品AV片观看五月色婷婷 | 偷拍国产精品在线播放| 国产精品ⅴ视频免费观看| 99re久久热免费视频| 无人区大片中文字幕在线| 国产精品99久久久久久宅男AV| 伊人久久青青| 亚洲精品无码成人AAA片| 色老板美国在线观看| 久久午夜伦理| 久久久久久亚洲精品影院| 国产福利一区二区精品| 草莓视频在线看免费高清观看| 伊人久久中文字幕久久cm| 亚洲精品无码不卡在线播HE| 秋霞电影伦网理最新在线看片 | 最近日本字幕MV免费观看在线| 久久噜国产精品拍拍拍拍| 好吊妞在线成人免费| 蝴蝶中文娱乐| 国产免费人视频在线观看免费| 国产盗摄一区二区三区| hd性欧美俱乐部中文| 亚洲绝美精品一区二区| 性色AV一区二区三区咪爱四虎| 九九夜夜妹子| 久久精品国产免费播放|