日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

[2018/11/13]图像处理

發布時間:2023/12/20 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [2018/11/13]图像处理 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

今晚圖像處理課.

我已經把Matlab當作PhotoShop來學了, 看看能把我的照片處理成什么樣子.

上節課學了8.6節圖像分割

今天學習8.6節二值圖像處理

?

圖像的邊沿不太光滑的時候可以使用該方法處理邊緣.

腐蝕可以把連在一起的圖片分開.

?

腐蝕的代碼:

originalBW = imread('circles.png'); se = strel('disk', 10); erodedBW = imerode(originalBW, se); imshow(originalBW), figure, imshow(erodedBW)

結果:

通過腐蝕之后, 可以數清楚圖片中有多少個圓形.

?

膨脹的代碼:

bw = imread('text.png'); se = strel('line',5,90); bw2 = imdilate(bw, se); imshow(bw), title('Original') figure, imshow(bw2), title('Dilated')

結果:

膨脹之后使得字體變形.

這是我的頭像膨脹后的樣子, 果然很膨脹

?

8.6.2 開運算和閉運算

開運算: 先腐蝕再膨脹, 消除圖像的細節.

比運算: 先膨脹再腐蝕, 填充物體內部的細小的空洞.

?

開運算結果:

閉運算結果:

?

?

填洞的操作, 將圖片內部的黑色的空洞處理掉才能夠方便的對圖像進行后續的處理.

代碼:

I=imread('coins.png'); BW4 = im2bw(I); BW5 = imfill(BW4, 'holes'); imshow(BW4), figure, imshow(BW5)

填洞后的結果, 可以看出每個圓圈的外表都十分的光滑, 內部的黑色的洞都沒有了.

?

?

10.4.1 簡單的區域描述

regionprops()函數

常見的拓撲結構:

孔洞

?

10.4.3: 形狀的描述

1、和圓形有多接近,方法: 面積/周長

2、偏心度

?

案例: 測試圖片的重心, 從而可以判斷有多少個硬幣:

上代碼:

clear clc; close all; I=imread('coins.png'); BW4 = im2bw(I); BW5 = imfill(BW4, 'holes'); imshow(BW4), figure, imshow(BW5) s = regionprops(BW5, 'centroid'); centroids = cat(1, s.Centroid); [m, n]=size(centroids); imshow(I) hold on plot(centroids(:, 1), centroids(:,2), 'b*') hold off m

計算出總數:

?

綜合的例子, 不僅可以計算有多少個硬幣, 同時可以計算出金額總和:

上代碼:

%讀取圖像 RGB = imread('coins.jpg'); %I=rgb2gray(RGB); I=RGB; %閾值分割圖像 threshold = graythresh(I); bw = im2bw(I,threshold); bw=~bw; bw = bwareaopen(bw,100); se = strel('disk',2); bw = imclose(bw,se); bw = imfill(bw,'holes'); [B,L] = bwboundaries(bw,'noholes'); stats = regionprops(L,'Area','Centroid'); array=zeros(1,length(B)); %求硬幣的直徑 for k = 1:length(B)boundary = B{k};delta_sq = diff(boundary).^2; perimeter = sum(sqrt(sum(delta_sq,2)));radius=perimeter/(2*pi);array(k)=radius; end %分類 B=sort(array); row=length(B); maxcoin=max(B); mincoin=min(B); for i=1:rowif(abs(B(i)-maxcoin)<2)B(i)=10;elseif (abs(B(i)-mincoin)<2)B(i)=1;elseB(i) = 5;end end %輸出錢數 c=sum(B)

結果:

?

轉載于:https://www.cnblogs.com/huangZ-H/p/9953969.html

總結

以上是生活随笔為你收集整理的[2018/11/13]图像处理的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。