ImageEn for Delphi and C++ Builder ImageEn for Delphi and C++ Builder

 

ImageEn Forum
Profile    Join    Active Topics    Forum FAQ    Search this forumSearch
 All Forums
 ImageEn Library for Delphi, C++ and .Net
 ImageEn and IEvolution Support Forum
 IEVision problem/bug

Note: You must be registered in order to post a reply.
To register, click here. Registration is FREE!

View 
UserName:
Password:
Format  Bold Italicized Underline  Align Left Centered Align Right  Horizontal Rule  Insert Hyperlink   Browse for an image to attach to your post Browse for a zip to attach to your post Insert Code  Insert Quote Insert List
   
Message 

 

Emoji
Smile [:)] Big Smile [:D] Cool [8D] Blush [:I]
Tongue [:P] Evil [):] Wink [;)] Black Eye [B)]
Frown [:(] Shocked [:0] Angry [:(!] Sleepy [|)]
Kisses [:X] Approve [^] Disapprove [V] Question [?]

 
Check here to subscribe to this topic.
   

T O P I C    R E V I E W
yogiyang Posted - Apr 09 2018 : 00:08:07
Hello,

I am using the latest version of IEVision (ver 4.0.0.0).

In the demos provided I am using GrabCutSelection for selecting character in an image which is attached here:



GrabCutSelection works perfectly when compiled as Win32 executable with above image. But if we compile it as Win64 it gives following error:



How to solve this please guide.

TIA


Yogi Yang
1   L A T E S T    R E P L I E S    (Newest First)
xequte Posted - Apr 11 2018 : 19:24:16
Hi Yogi

We'll have a fix in the upcoming 4.0.1. In the meantime you can workaround by disabling FP (for both FPU and SSE) exceptions with SetExceptionMask

For example:

procedure TMainForm.ButtonGrabCutSelectClick(Sender: TObject);
var
  gc: TIEVisionGrabCut;
begin
  SetExceptionMask([exInvalidOp, exDenormalized, exZeroDivide, exOverflow, exUnderflow, exPrecision]);
  gc := IEVisionLib().createGrabCut();
  gc.setInputImage(ImageEnView1.IEBitmap.GetIEVisionImage());
  case RadioGroupSelection.ItemIndex of
    0:  // rectangular selection
      begin
        gc.setForegroundRect(IEVisionRect(ImageEnView1.SelectedRect));
        //showmessage(format('%d %d %d %d', [ImageEnView1.SelectedRect.x, ImageEnView1.SelectedRect.y, ImageEnView1.SelectedRect.width, ImageEnView1.SelectedRect.height]));
      end;

    1: // irregular selection
      begin
        gc.setSelectionMask(ImageEnView1.SelectionMask);
      end;
  end;
  gc.run(5);
  ImageEnView1.Deselect;
  gc.getSelectionMask(ImageEnView1.SelectionMask);
  ImageEnView1.SelectCustom();
end;


Nigel
Xequte Software
www.imageen.com