㈠ matlab中圖像剪裁的問題
381:end-250
從第381行到倒數第250行
351:end-340
從第351列到倒數第340列
這個范圍內的矩形數據截取出來
就是你說的圖像裁剪
基礎的matlab格式去了解下,就很容易明白了
data(row,col)就是行和列的選擇,可以選擇單一值,也可以選擇一個范圍
㈡ matlab中如何對圖片進行裁切
比如原圖片矩陣是320*240,你想截取20-40行,50-60列的時候
直接
f1=f(20:40,50:60);
就可以了
㈢ 如何用matlab對圖像進行剪切
matlab圖像的剪切
函數imcrop實現對圖像的剪切操作。格式如下:
B=imcrop(A);
B=imcrop(X,map)
B=imcrop(RGB)
以上實現互動式的對灰度圖像,索引圖像和真彩色圖像的剪切操作。
B=imcrop(I,rect)
B=imcrop(A,map,rect)
B=imcrop(RGB,rect)
分別指定舉行區域rect剪切圖像,rect是一個4元向量[xmin,ymin,width,height]。[B,rect]=imcrop(…)
[x,y,B,rect]=imcrop(..)返回剪切框參數。
㈣ 關於MATLAB中圖形裁剪處理的呢nan
nan代表非數,在會圖中不會出現,畢竟不是數就沒法繪制。這樣正好就能起到裁剪圖片的功能,也就是說,你不想繪制圖的哪一部分,你就將它賦值為nan,那麼繪圖中就不會出現該部分
㈤ MATLAB中如何批量剪裁彩色圖片
MATLAB中如何批量剪裁彩色圖片
答:
使用matlab批量的在圖片中裁剪指定像素大小的圖片,附:matlab代碼
for
k=1:1
p=k;
q=int2str(p);
path='G:\plant數據\P4\1h\';
i=imread(strcat(path,num2str(k),'.tif'));
[I2,rect]
=
imcrop(i,[225,225,575,575]);
%若有一個圖像為i,在matlab中進行如下操作,imcrop的參數為[2,2,2,2]
%代表左上角坐標為[2,2],裁剪的長度2,寬度為2。
figure(1);
imshow(i);
hold
on
x1=rect(1);
x2=rect(2);
w=rect(3);
h=rect(4);
rectangle('Position',[x1,x2,w,h],
'EdgeColor','y');
x3=x1+w;
x4=x2+h;
hold
off
figure(2);
imshow(I2);
imwrite(I2,strcat('G:\plant數據\',num2str(k),'.tif'));
end
㈥ 用matlab如何講圖片的其中一部分進行裁剪,然後對裁剪的部分進行上下倒轉之後再放回原圖啊
使用 imcrop 時,返回兩個值即可簡單實現:
[jm, rect] = imcrop(im)
上面的變數意義:im 是需要處理的原始圖片,jm 是圖片裁剪部分,rect 是坐標
其中,rect 是一個包含 4 個元素的數組,前兩個元素是裁剪部分左上角的坐標 x 和 y,後兩個元素是裁剪部分的大小,格式為 [xpos, ypos, xlen, ylen]。注意,x 方向是寬,y方向是高,而 Matlab 是列優先索引,因此實際索引時需要將 y 方向作為第一維;
你的代碼可以這樣寫:
%read image
img = imread('baby.jpg');
figure;
subplot(1,2,1)
%show image
imshow(img);
title('ORIGINAL IMAGE');
%crop image
[~, rect] = imcrop(img);
rect = num2cell(round(rect));
[xpos, ypos, xlen, ylen] = deal(rect{:});
%Upside down
imud = im;
imud(ypos:ypos+ylen, xpos:xpos+xlen, :)= flipud(imud(ypos:ypos+ylen, xpos:xpos+xlen, :));
subplot(1,2,2);
imshow(imud);
坐標參數預處理和圖片裁剪翻轉處理
函數餘下部分進行坐標處理和圖像裁剪翻轉;
㈦ MATLAB 圖片裁剪處理
原圖像為F
[f,rect] = imcrop(F)
f 為裁剪所得圖片,rect 為f 的起始點以及長寬值。
㈧ matlab三維圖剪切掉其中一部分,如何操作
利用「非數」 NaN ,對圖形進行剪切處理。
clf;
t=linspace(0,2*pi,100); r=1-exp(-t/2).*cos(4*t); % 旋轉母線
[X,Y,Z]=cylinder(r,60); % 產生旋轉柱面數據
ii=find(X<0&Y<0); % 確定 x-y 平面第四象限上的數據下標
Z(ii)=NaN; % 剪切
surf(X,Y,Z);colormap(spring),shading interp
light('position',[-3,-1,3],'style','local') % 設置光源
material([0.5,0.4,0.3,10,0.3]) % 設置表面反射
利用「非數」 NaN ,對圖形進行鏤空處理。
P=peaks(30);P(18:20,9:15)=NaN; % 鏤空
surfc(P);colormap(summer)
light('position',[50,-10,5]),lighting flat
material([0.9,0.9,0.6,15,0.4])
http://www.iforchina.com/show.aspx?id=4468&cid=170
我都忘了,這個網站肯定可以
㈨ MATLAB繪圖如何裁剪圖像(或添加約束范圍)
figure
l = 42.5;
r = 1;
[x,y,z]=meshgrid(-5.8:0.1:5.8,-5.8:0.1:5.8,-0.058:.001:0.058);
v = l*tand(x+y+z) + r*(1-1./cosd(x+y+z)) - l*tand(y) - l*tand(x) - r*(1-1./cosd(x));
v(x+y<-5.8|x+y>5.8)=nan;%增加這一句
p = patch(isosurface(x,y,z,v,0),'FaceColor','r','EdgeColor','none');
isonormals(x,y,z,v,p)
view(3)
camlight
lighting gouraud
axis([-5.8 5.8 -5.8 5.8 -0.058 0.058])
grid on
㈩ 利用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就行了