I am trying for crop an image in to two equal parts using for loop but not getting correct ans.
2 views (last 30 days)
Show older comments
Durgesh Naik
on 6 Apr 2015
Commented: Image Analyst
on 7 Apr 2015
clc; clear all; close all;
input= imread('120kv x1.25mA(56000)15cm.bmp'); figure(1),imshow(input); a=im2double(input); [x, y, z]=size(a);
y1=round(y/2);
% new=a; for i=1:x; for j=1:z; for k=1:y1; new(x, y1, z)=a(x, y, z); end end end figure, imshow(new);
% new=a; for i=1:x; for j=1:z; for k=1:y1; new1(x,y1,z)=a(x, y1+1, z); end end end figure, imshow(new1);
0 Comments
Accepted Answer
Image Analyst
on 6 Apr 2015
Don't use input as the name of your image because it's already the name of a built-in function. You don't need a for loop. Just use regular indexing:
[rows, columns, numberOfColorChannels] = size(rgbImage);
middleCol = floor(columns/2);
leftHalf = rgbImage(:, 1:middleCol, :);
rightHalf = rgbImage(:, (middleCol+1):end, :);
4 Comments
More Answers (0)
See Also
Categories
Find more on Geometric Transformation and Image Registration in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!