當前位置:首頁 » 操作系統 » 圖像分割演算法matlab

圖像分割演算法matlab

發布時間: 2022-08-02 23:15:51

A. 如何利用matlab按照圖形從圖片中分割出來

你需要先知道每一個O占的大小 比如佔8*8個像素 SkipStep=8;%每一個O的大小 和遍歷的補償 M=8; N=8; n=0;%編號 I=imread('**.jpg'); I=rgb2gray(I);%灰度轉化 [H,W]=size(I); xStepNum = floor((W-N)/SkipStep+1);%朝負無窮方向取整 寬度方向block移動的次數 yStepNum = floor((H-M)/SkipStep+1);%朝負無窮方向取整 高度y方向移動的次數 for j=1:xStepNum%一列一列來取的 for m=1:yStepNum n=n+1; PImg=I((m-1)*SkipStep+1:(m-1)*SkipStep+M,(k-1)*SkipStep+1:(k-1)*SkipStep+N);%分割圖像 y='jpg'; w=strcat(n,'.',y); imwrite(PImg,w);%保存分割出來的圖片 格式為jpg 名字為編號n end end 但是這樣也把不是O的取出來了,你可以知道沒有O的地方的n 你到時候不用即可

B. MATLAB如何切割圖像

直接用矩陣操作就可以了,用imread讀取圖像,讀取的結果在matlab中就是一個矩陣,然後用imwrite把你需要的部分寫到新的文件中。

例如(時間有限,僅寫了灰度圖像的一部分):

I=imread('source.bmp');
n=ndims(I); %獲得圖像維數,如果是2就是灰度圖像,3是彩色圖像,需要分別處理
if n==2
[x,y]=size(I); %求圖像大小
imwrite(I(1:round(x/4),1:round(y/4)),'file.bmp','bmp');
end
這樣就把圖像分成4*4,最左上角的圖像保存到file.bmp中了。

思路大致如此,手頭沒有matlab,上班ing,供你參考。

以上。
專業路過的老狼

C. 用MATLAB的數學形態學做圖像分割的步驟是什麼啊 先腐蝕在膨脹 還是說先得用到邊緣檢測什麼的

% rgb=imread('source1.bmp');
% I=rgb2gray(rgb); % 色彩轉換成灰度
I=imread('source3.bmp');
level= graythresh(I); %得到合適的閾值 得到合適的閾值
bw= im2bw(I,level); %二值化
SE= strel('square',3); %設置膨脹結構元素
BW1= imdilate(bw,SE); % 膨脹
SE1= strel('arbitrary',eye(5)); %設置腐蝕結構元素
BW2= imerode(bw,SE1); %腐蝕
BW3= bwmorph(bw,'open'); %開運算
BW4= bwmorph(bw,'close'); %閉運算
figure(1),
subplot(2,3,1),imshow(I);title('原圖');
subplot(2,3,2),imshow(bw);title('二值圖');
subplot(2,3,3),imshow(BW1);title('膨脹');
subplot(2,3,4),imshow(BW2);title('腐蝕');
subplot(2,3,5),imshow(BW3);title('開運算');
subplot(2,3,6),imshow(BW4);title('閉運算');
%
figure(2)
BW5 = imfill(bw,'holes');
subplot(121), imshow(bw), title('源圖像二值化')
subplot(122), imshow(BW5), title('填充後的圖像')
%輪廓提取
figure(3)
contour = bwperim(bw);
imshow(contour);
title('輪廓')

D. matlab圖像分割程序

clear I=imread('.jpg'); %讀入圖像
q=imadjust(I,[.2 .3 0;.6 .7 1],[]); %增強圖像的對比度
j=rgb2gray(q); %彩色圖像變灰度圖像
j1=im2bw(q,230/255);%二值化
se90=strel('line',3,90); %構造元素
se0=strel('line',3,0); %同上
BW2=imdilate(j1,[se90 se0]); % 用構造的元素膨脹
BW3=bwareaopen(BW2,100);%開操作
BW3=~BW3;%取反
BW4=bwareaopen(BW3,20);%開
BW5=bwperim(BW4);%計算BW4周長
[imx,imy]=size(BW5);計算長寬
L=bwlabel(BW5,8);%用不同的數字根據是否連通標記圖像,
a=max(max(L));%得到L圖像中標記結果的最大值
BW6=bwfill(BW5,'hole');%填充背景
I2=I;
for i=1:3; I2(:,:,i)=I2(:,:,i).*uint8(BW6);
end imshow(I2); 有大神能逐條解釋一下語句嗎,本人是菜鳥啊,跪求!!

E. matlab圖像分割

在一幅圖像中,人們常常只對其中的部分目標感興趣,這些目標通常占據一定的區域,並且在某些特性(如灰度、輪廓、顏色和紋理等)上和臨近的圖像有差別。這些特性差別可能非常明顯,也可能很細微,以至肉眼察覺不出來。隨著計算機圖像處理技術的發展,使得人們可以通過計算機來獲取和處理圖像信息。圖像識別的基礎是圖像分割,其作用是把反映物體真實情況的、占據不同區域的、具有不同特性的目標區分開來,並形成數字特徵。圖像分割是圖像識別和圖像理解的基本前提步驟,圖像分割質量的好壞直接影響後續圖像處理的效果,甚至決定其成敗,因此,圖像分割的作用是至關重要的。

F. 利用matlab如何將一幅圖片按尺寸分割成若干小圖片

這樣的圖是沒有現成的函數幫你切割出來單個小圓的,我不知道是誰替你想出的這個方法,也不知道你有什麼目的,但這絕對是個笨辦法,只能靠機械式的數學演算法,程序編出來沒有適用性,不過如果你要是只針對這一個圖我可以給你程序:設原始圖片是im_i,你事先還必須測量出來邊緣到第一個圓心的距離設為a1(長邊)和b1(短邊)以及兩圓心之間的距離a2,才能進行初始化
a=a2/2;
A=a1+a;
B=b1+a;
[M,N]
=
size(im_i);
im_o
=
zeros(M,N);
im1=im_i(0:A,0:B);%第一個圓
for
k1=A:a2:M
for
k2=B:a2:N
.
.
.
剩下的就那麼存就行了,你這是定位到圓,假如你想把圖片直接切割成M*N塊的圖像直接用imwrite就行了

G. 如何用matlab分割圖像

可以用聚類進行分割,MATLAB自帶的程序,有kmeans,fcm,你在MATLAB中help試試,不會再找我

熱點內容
linux伺服器網站 發布:2025-01-17 23:14:45 瀏覽:785
sql幾點 發布:2025-01-17 23:08:42 瀏覽:350
扣扣密碼是多少 發布:2025-01-17 23:02:57 瀏覽:646
易柚和安卓手機哪個好 發布:2025-01-17 23:02:14 瀏覽:583
linux切換root用戶 發布:2025-01-17 22:50:27 瀏覽:534
速賣通演算法 發布:2025-01-17 22:42:12 瀏覽:444
編譯中標題翻譯的特點 發布:2025-01-17 22:42:07 瀏覽:439
oppok7x激活密碼是多少 發布:2025-01-17 22:41:02 瀏覽:222
按鍵精靈腳本自動交易分解 發布:2025-01-17 22:30:33 瀏覽:14
如何恢復安卓60 發布:2025-01-17 22:27:07 瀏覽:439