matlab求二值影象中白色區域的面積

2022-01-19 04:54:54 字數 4409 閱讀 4142

1樓:

a=imread(**)

%計算白色畫素的個數

b=sum(sum(a==256));

%計算比例

ratio=b/numel(a);

然後看看整張圖的面積,乘以ratio就可以了。

2樓:我行我素

求是可求的,單位是按畫素呢,還是平方釐米?

matlab如何求二值影象中白色區域的面積?平均面積呢 40

3樓:量子

二值影象就是一個矩陣,比如100*100大小,面積表示100平方米,那麼,統計一下矩陣裡面1的個數,佔100*100的百分之多少,白色的面積就是100平方米的百分之幾了

用matlab怎麼計算二值影象中不同白色區域的面積

4樓:我行我素

這是要寫程式的,你有影象嗎?發過來看看,我可以寫個程式給你。

如何用matlab計算二值化圖中白色區域的畫素點個數

5樓:一個青年

計算原理如下:

假設一副二值**,其背景是黑色的,而邊緣是白色的,而且白色邊緣中不包含黑色的點,就如附件中的那個影象。

程式原始碼如下:

%% step 1

clear all

clci=imread('test.bmp');%讀入**

bwi=im2bw(i,0.5);%轉化為二值影象

l=bwlabel(bwi,4);%將四連通區域進行標記

[r,c]=find(l==1);%查詢其中的白色區域,r是白點的所在行組成的向量,c是白點所在的列組成的向量

%% step 2 %去除r中重複的數

new_r=;

for i=1:length(r)

nn=find(new_r==r(i));

if isempty(nn),new_r=[new_r r(i)];end

end%% step 3

sum_zeros=0;%輪廓中總的點的個數

for i=1:length(new_r)

n=find(bwi(new_r(i),:)==1);%查詢有白點的行中白點所在的位置

if length(n)==1,continue;end%如果該行中只有一個白點,則返回

num_zeros=n(end)-n(1)+1-length(n);%否則計算夾在白點之間的黑點的個數

sum_zeros=sum_zeros+num_zeros;

end二值化圖例項如下(即黑白兩色):

擴充套件資料:

c語言實現原始碼:

#include "opencv2/highgui/highgui.hpp"

#include "opencv2/imgproc/imgproc.hpp"

#include "opencv2/core/core.hpp"

#include

#include

#include "cv.h"

#include "highgui.h"

#include

#include

#include

#include

using namespace std;

using namespace cv;

//統計一幅**中白色畫素點和黑色畫素點佔整幅圖的比例

int bsums(mat src)

else

}double bilib = counter * 1.0 / n * 1.0 * 100 * 1.0;

double bilih = black * 1.0 / n * 1.0 * 100 * 1.0;

cout << "counter:" << counter << endl;

cout << "black:" << black << endl;

cout << "n:" << n << endl;

cout << "bilib:" << bilib << endl;

cout << "bilih:" << bilih << endl;

return counter;

}int main(int agrc, char** agrv)

6樓:shine戚七七

下面是一個簡單的計算輪廓包含起來的畫素點的個數的程式:

%% step 1

clear all

clci=imread('test.bmp');%讀入**

bwi=im2bw(i,0.5);%轉化為二值影象

l=bwlabel(bwi,4);%將四連通區域進行標記

[r,c]=find(l==1);%查詢其中的白色區域,r是白點的所在行組成的向量,c是白點所在的列組成的向量

%% step 2 %去除r中重複的數

new_r=;

for i=1:length(r)

nn=find(new_r==r(i));

if isempty(nn),new_r=[new_r r(i)];end

end%% step 3

sum_zeros=0;%輪廓中總的點的個數

for i=1:length(new_r)

n=find(bwi(new_r(i),:)==1);%查詢有白點的行中白點所在的位置

if length(n)==1,continue;end%如果該行中只有一個白點,則返回

num_zeros=n(end)-n(1)+1-length(n);%否則計算夾在白點之間的黑點的個數

sum_zeros=sum_zeros+num_zeros;

end就是這樣的,比如這一行是這樣的001110000011100,那麼step3中的n就是一個向量:3 4 5 11 12 13,這六個數分別是這行中白點的位置,那麼其中的夾在1之間的0的個數就是:13-3+1-6=5 。

7樓:匿名使用者

求matlab中求二值化後的**中白色所佔面積或比例的函式,及其使用方法

8樓:匿名使用者

直接對影象矩陣求和,然後除以影象面積就ok了。若是分塊的話,就要先用bwlabel標註連通區域,然後統計分析。

求助,matlab中一幅二值影象p,對於其中的白色部分,假如我確定了行數ro 20

9樓:花果山小猴

車牌識別?

步驟如下:

① 可以用消除小面積元素的辦法獲得你要的感興趣區域,函式格式:

bw2 = bwareaopen(bw,p,conn)作用:刪除二值影象bw中面積小於p的物件

試幾次就知道你的p該選什麼值了,認情況下conn使用8鄰域。

這樣作了之後應該就只剩下感興趣區域的畫素和背景畫素了。

②然後用投影法,即從左往右統計每列畫素的個數,你會發現它們集中在一個區域,然後就有了左右的邊界座標了,同理可以獲取上下的座標。

③切割。有了上面的②過程,切割出來並歸一化大小到你要的尺寸就好做了。

如何用matlab求二值影象中,閉區域內的面積,周長?

10樓:匿名使用者

兩個函式

bwlabel 區域標記

regionprops 可以求邊長,面積等

如何利用matlab計算如下圖裡白色區域的面積?求高手指教~~~~~~qq:273072495 忘快速給答案,急用~~~~~~

11樓:疾風動竹

i = imread('d:\t.jpg');%讀入原圖,假設t.jpg為原圖

ii=im2bw(i,0.5);%二值化後的**矩陣,白為1,黑為0s=numel(ii);%畫素點總數

s=sum(sum(ii));%白色點總數ratio=s/s;%白色面積比

可求出白色佔總面積的15.719%,總面積乘以白色面積比即為所求望採納

matlab求一個圖中各區域的面積

12樓:匿名使用者

1 首先切除邊界的白色部分

2 把影象變為二值影象

3 用bwlabel函式標記

4 再用regionprops函式中的area引數即可求出

如何用matlab畫二維函式影象

如果是初學 bai,建議使用du嚴格的數值繪圖命zhi令,在清楚函式定義域的dao前提下畫圖 clear all clc x 3 0.01 3 y exp x plot x,y grid on axis 3,3,2,6 log x 這個函式版,如果不限定權定義域的話,會有複數解的。clear all...

求用MATLAB顯示灰度影象的直方圖的操作詳細步驟,小白求

1 開啟matlab需要處理的影象,然後再下面寫出 是 pic i,j 255 u v sum c int img i,j 2 然後接下來就可以看到影象均衡化的 3 最後,畫出均衡化 的直方圖如圖所示,衡化前後,對比一下,這樣就可以解決問題了。怎麼用matlab顯示一張 和它的灰度直方圖!本人絕對小...

matlab中如何用qr函式求特徵值和特徵向量,矩陣是mxn

1.矩陣qr分解直接用函式qr就可以了。qr函式適用於不是方針的矩陣分解。2.用法 q,r qr a 得到q是mm矩陣,r是mn.3.排列大小的可以採用sort函式。具體情況建議開啟matlab 幫助瀏覽器詳細看qr函式的用法。先不要考慮matlab了,先回去複習一下線性代數,單個的矩陣但不是方陣何...