I don't know what parts of the image may vary between frames. Particularly, whether the object always appears with a similar size, and whether the object always has a slightly blue margin with a slightly yellowish interior. I am going to ignore the interior colored region and its relationship to object size.
inpict = imread('D1-MOSL-0919-R2A-9.jpg');
hsvpict = rgb2hsv(inpict);
limits = permute(limits,[2 3 1]);
mask = all(hsvpict>=limits(1,:,:) & hsvpict<=limits(2,:,:),3);
dish = mask & ~imclearborder(mask);
dish = imdilate(dish,strel('disk',50));
mask = bwareafilt(mask,1);
mask = imfill(mask,'holes');
mask = imopen(mask,strel('disk',50));
At this point, the mask can be applied however one chooses. To crop the image to the extent of the mask:
outpict = inpict(rows,cols,:);
Alternatively, maybe the lighting conditions and adjacent markings/dish make it difficult to isolate the object edges depending on the image. Maybe you could simply rely on the interior color being relatively unique. The problem is that if the edges of the object are difficult to isolate, and only the interior is known, you might have to assume the object's size based on a subset of its apparent geometry:
inpict = imread('D1-MOSL-0919-R2A-9.jpg');
hsvpict = rgb2hsv(inpict);
limits = permute(limits,[2 3 1]);
Hmask = hsvpict(:,:,1)>=limits(1,:,1) | hsvpict(:,:,1)<=limits(2,:,1);
SVmask = all(hsvpict(:,:,2:3)>=limits(1,:,2:3) & hsvpict(:,:,2:3)<=limits(2,:,2:3),3);
mask = bwareaopen(mask,50);
mask = imclose(mask,strel('disk',50));
mask = bwareafilt(mask,1);
mask = imdilate(mask,strel('disk',40));
... and again, the mask can be applied the same as before.