really really new using matlab so here i go
if true
clear all;
cam=webcam;
img = snapshot(cam);
imwrite(img, 'a.jpg');
faceDetector = vision.CascadeObjectDetector();
videoFileReader = vision.VideoFileReader('a.jpg');
a= step(videoFileReader);
bbox= step(faceDetector, a);
m=img(bbox(2):bbox(2)+bbox(3),bbox(1):bbox(1)+bbox(3));
imshow(m);
end
the idea is to save "m" with the new bounds provided from "bbox"...thats cool i did that and "m" is the new image (only face)..the problem is "m" is a n x m unit 8 matrix image NOT like "img" a n x m x 3 unit 8 matrix image. I know about 2d (nxm) index only, i have no idea how to index a nxmx3 matrix (thats my problem i guess)... short story. Having a black and white "m" instead of the full collor "m" i wanted
any help appreciated
(sorry for my bad english)

 채택된 답변

Ced
Ced 2014년 11월 3일
편집: Ced 2014년 11월 3일

0 개 추천

Hi
I'm not familiar with the output from snapshot, but concerning 3D matrices (or even higher dimensions), indexing works the same way it does for 2D matrices, just call e.g. A(1:2,2:4,1:3) instead of A(1:2,2:4). For your example, this may be something like
m = img(bbox(2):(bbox(2)+bbox(3)),bbox(1):(bbox(1)+bbox(3)),:)
since I'm guessing your 3 dimensions are color channels, and you want all three of them. If you don't specify that you want all three (through ":"), you will only get the first plane.
PS: Your english is perfectly fine.

댓글 수: 1

cristian
cristian 2014년 11월 3일
Thx man that completely solve my problem and i learn something new today thanks for everything

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

도움말 센터File Exchange에서 Image Processing and Computer Vision에 대해 자세히 알아보기

질문:

2014년 11월 3일

댓글:

2014년 11월 3일

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by