圖像的形態學操作

2021-03-02 程序算法實驗室
#include <opencv4/opencv2/opencv.hpp>#include <iostream>
using namespace cv;using namespace std;void drawState(Mat &img,int number,Mat centroids,Mat stats,String str);
int main(){ Mat src=(Mat_<uchar>(6,6)<<0,0,0,0,255,0, 0,255,255,255,255,255, 0,255,255,255,255,0, 0,255,255,255,255,0, 0,255,255,255,255,0, 0,0,0,0,0,0); Mat struct1,struct2; struct1=getStructuringElement(0,Size(3,3)); struct2=getStructuringElement(1,Size(3,3)); Mat erodeSrc; erode(src,erodeSrc,struct2); namedWindow("src",WINDOW_GUI_NORMAL); namedWindow("erodeSrc",WINDOW_GUI_NORMAL); imshow("src",src); imshow("erodeSrc",erodeSrc); cout<<"文字腐蝕驗證"<<endl; waitKey(0);
Mat black=imread("/home/zja/Pictures/Black1.png"); Mat erode_black1,erode_black2; erode(black,erode_black1,struct1); erode(black,erode_black2,struct2); imshow("black",black); imshow("erode_black1",erode_black1); imshow("erode_black2",erode_black2); cout<<"驗證腐蝕對小連通域的去除"<<endl; waitKey(0);
Mat star=imread("/home/zja/Pictures/star.jpg"); Mat star2; copyTo(star,star2,star); Mat wink,winkBW; cvtColor(star,wink,COLOR_BGR2GRAY); threshold(wink,winkBW,50,255,THRESH_BINARY);
Mat out,stats,centroids; int number=connectedComponentsWithStats(winkBW,out,stats,centroids,8,CV_16U); drawState(star,number,centroids,stats,"未腐蝕時統計連通域");
erode(winkBW,winkBW,struct1); number=connectedComponentsWithStats(winkBW,out,stats,centroids,8,CV_16U); drawState(star2,number,centroids,stats,"腐蝕後統計連通域");
waitKey(0);return 0;}void drawState(Mat &img,int number,Mat centroids,Mat stats,String str){ RNG rng(10086); vector<Vec3b> colors; for(int i=0;i<number;i++) { Vec3b vec3=Vec3b(rng.uniform(0,256),rng.uniform(0,256),rng.uniform(0,256)); colors.push_back(vec3); } for(int i=1;i<number;i++) { int center_x=centroids.at<double>(i,0); int center_y=centroids.at<double>(i,1); int x=stats.at<int>(i,CC_STAT_LEFT); int y=stats.at<int>(i,CC_STAT_TOP); int w=stats.at<int>(i,CC_STAT_WIDTH); int h=stats.at<int>(i,CC_STAT_HEIGHT); circle(img,Point(center_x,center_y),2,Scalar(0,255,0),2,8,0); Rect rect(x,y,w,h); rectangle(img,rect,colors[i],1,8,0); putText(img,format("%d",i),Point(center_x,center_y),FONT_HERSHEY_SIMPLEX,0.5,Scalar(0,0,255),1); } imshow(str,img);}

相關焦點

  • 基於FPGA灰度圖像的形態學腐蝕
    基於FPGA灰度圖像的形態學腐蝕
  • 【OpenCV入門十七講】形態學操作
    膨脹與腐蝕(Dilation與Erosion)圖像形態學操作膨脹與腐蝕能實現多種多樣的功能,主要如下:相關函數getStructuringElement(int shape, Size ksize, Point anchor
  • 形態學上的圖像頂帽運算和黑帽運算是什麼?
    數學形態學(Mathematical morphology)是一門建立在格論和拓撲學基礎之上的圖像分析學科,是數學形態學圖像處理的基本理論。其基本的運算包括:腐蝕和膨脹、開運算和閉運算、骨架抽取、極限腐蝕、擊中擊不中變換、形態學梯度、Top-hat變換、顆粒分析、流域變換等。本篇文章主要講解Python調用OpenCV實現圖像形態學轉化,包括圖像頂帽運算和圖像黑帽運算,基礎性知識希望對您有所幫助。1.圖像頂帽運算2.圖像黑帽運算
  • 【圖像處理】基於形態學的權重自適應圖像去噪
    採用數學形態學的多結構元素,可以更多地保持數字圖像的幾何特徵。因此,選擇構建串聯濾波器來進行圖像濾波,就是將同一形狀的結構元素按維數從小到大的順序來對圖像進行濾波,如下圖所示: 數字圖像在進行數學形態濾波去噪時,根據噪聲特點可以嘗試採用維數由小到大的結構元素來進行處理,進而達到濾除不同噪聲的目的。採用數學形態學的多結構元素,可以更多地保持數字圖像的幾何特徵。
  • Python 圖像處理 OpenCV (9):圖像處理形態學開運算、閉運算以及梯度運算
    引言 前面介紹了圖像形態學的兩種基礎算法,圖像腐蝕和圖像膨脹,本篇接著介紹圖像形態學中的開運算、閉運算以及梯度運算。由於內容的連貫性,請先閱讀前文「Python 圖像處理 OpenCV (8):圖像腐蝕與圖像膨脹」,了解清楚圖像的腐蝕與膨脹基礎原理。
  • OpenCV-Python 形態學轉換|十七
    目標在這一章當中, 我們將學習不同的形態學操作,例如侵蝕,膨脹,開運算,閉運算等。 我們將看到不同的功能,例如:cv.erode(),cv.dilate(), cv.morphologyEx()等。理論形態變換是一些基於圖像形狀的簡單操作。通常在二進位圖像上執行。
  • OpenCV圖像分析處理(2)
    二、圖像處理調整圖像亮度與對比度圖像變換可以看作如下
  • MATLAB圖像文件的操作
    可用其對有噪圖像或退化圖像進行去噪或還原、增強圖像以獲得更高的清晰度、提取特徵、分析形狀和紋理,以及對兩個圖像進行匹配。工具箱中的大部分函數均以開放式MATLAB語言編寫,這意味著可以檢查算法、修改原始碼和創建自定義函數。
  • opencv教程-形態學處理、邊緣檢測
    1:形態學處理(常用於二值化圖像)腐蝕:對核範圍內的像素,只要有一個是非前景,則設置為背景;比如對於3*3的核函數,如果當前像素的3*3鄰域內像素全是前景則保留,否者設置為背景;常用於去除較小噪聲,分離物體。
  • 【OpenCV+Python】頂帽與黑帽操作
    為原圖像與上文剛剛介紹的「開運算「的結果圖之差,數學表達式如下:因為開運算帶來的結果是放大了裂縫或者局部低亮度的區域,因此,從原圖中減去開運算後的圖,得到的效果圖突出了比原圖輪廓周圍的區域更明亮的區域,且這一操作和選擇的核的大小相關。帽運算往往用來分離比鄰近點亮一些的斑塊。
  • 蘭州理工大學敦煌設計形態學研究院成立
    中國教育報-中國教育新聞網訊(記者 尹曉軍)近日,蘭州理工大學敦煌設計形態學研究院舉行了揭牌儀式。據悉,該研究院由敦煌創新設計服務聯盟、敦煌設計形態學研究中心、「敦煌研究院—蘭州理工大學文化遺產數字保護與再利用聯合實驗室」構成,並圍繞敦煌設計形態學確立了「敦煌設計形態智能設計」「敦煌藝術再生設計」「敦煌建築與遺產保護」「敦煌壁畫圖像處理和數位化成像」「敦煌文藝形態」「敦煌體育形態」等6個研究方向。
  • 外周血細胞形態學圖譜,檢驗必備!
    《血象—外周血細胞圖譜》是一本基於外周血細胞形態學檢驗與分析的工具書,他告訴你有關血細胞自動化分析與顯微鏡復檢的有關問題,包括如何復檢、復檢什麼、關注什麼、復檢的價值等。  在當今以各種血細胞分析儀作為血常規主流檢驗設備的大環境下,在現有的技術條件下如何能夠有效的補充血細胞分析儀在性能和能力上的不足,特別是異常細胞形態分析上的不足,有針對性的進行形態學檢驗和復檢,是一個很重要的原則和做法,也是體現一個醫院、科室和個人能力的重要證明。
  • 常用的十大 python 圖像處理工具
    但無論是用於何種用途,這些圖像都需要進行處理。圖像處理就是分析和處理數字圖像的過程,主要旨在提高其質量或從中提取一些信息,然後可以將其用於某種用途。圖像處理中的常見任務包括顯示圖像,基本操作如裁剪、翻轉、旋轉等,圖像分割,分類和特徵提取,圖像恢復和圖像識別。
  • 愛威科技:智能顯微鏡形態學檢驗技術助力醫學飛速發展
    紅網時刻1月16日訊(記者 曾映雪)近日,愛威科技股份有限公司(以下簡稱「愛威科技」)承擔的湖南省戰略性新興產業科技攻關類——智能顯微鏡形態學檢驗技術的研發及產業化項目迎來「中期考核」。2016年1月,智能顯微鏡形態學檢驗技術的研發及產業化項目在愛威科技開始立項執行,執行時間為2016年1月1日至2018年12月31日。
  • Python十大工具,讓圖像簡潔直觀有魅力!
    因此,圖像處理就是對數字圖像進行分析、操作的過程,其主要目的是為改善圖像質量或從中提取一些有用信息。圖像處理的常見任務包括圖像顯示、圖像基本操作(裁剪、翻轉、旋轉等)、圖像分割、分類及特徵提取、圖像修復和圖像識別。而Python作為一種科學程式語言已在日漸普及,在生態系統庫中還免費提供了許多最為先進的圖像處理工具,因此成為了圖像處理的最佳選擇。
  • 數字圖像處理中常用圖像分割算法有哪些?
    擊上方「新機器視覺」,選擇加"星標"或「置頂」重磅乾貨,第一時間送達數字圖像處理中常用圖像分割算法有哪些
  • 片岡繁夫牙體形態學(報名有好禮)
    亞洲首屈一指的牙體形態學大師12月14日-16日理論+實操    匠心精神   E.MAX美學大師
  • 10個Python圖像處理工具,非常全了!
    介紹我們這個世界充滿了數據,而圖像是這些數據的重要組成部分。然而,要想使用這些圖像,需要對它們進行處理。因此,圖像處理是分析和處理數字圖像的必要的過程,其主要目的是提高圖像質量或從中提取一些信息,然後加以利用。圖像處理中常見的任務包括圖像顯示、裁剪、翻轉、旋轉等基本操作、圖像分割、分類和特徵提取、圖像恢復和圖像識別。
  • MATLAB數字圖像處理(一)圖像的基本操作
    寫在前頭:說到數字圖像處理,不得不提起MATLAB。這是一款非常方便的仿真軟體,絕大多數的圖像處理可以用MATLAB完成。
  • 視頻圖像中文本的檢測、定位與提取
    文中針對水平和豎直排列的靜止及滾動文本,提出利用小波多尺度局部模極大值邊緣檢測算法來檢測文本圖像邊緣,利用形態學處理生成候選文本區域,用由粗到精的多次水平、豎直投影來定位精確的文本位置。然後,對於文本子圖用局部Otsu方法和區域填充處理進行文字二值化提取。