halcon-convert_image_type圖像類型轉換


111.png

 

112.png

 

 

在HDevelop中

read_image (Image1, 'D:/bb/tu/111.png')
read_image (Image2, 'D:/bb/tu/112.png')
get_image_size (Image1, Width, Height)

convert_image_type (Image1, ImageConverted1, 'int2')
*圖像類型轉換
*參數1:輸入圖像
*參數2:輸出圖像
*參數3:新類型( 'int1', 'int2', 'uint2', 'int4', 'byte', 'real', 'direction', 'cyclic', 'complex'*convert_image_type將任意類型的圖像轉換為任意的新圖像類型,如果從較大的灰度值范圍轉換到較小的灰度
*值范圍(例如,從'int4''byte'),過大或過小的值將被簡單地“剪切”。如果結果圖像的類型是'direction'*那么不屬於'direction'圖像有效值范圍的灰度值將被設置為255,以表示它們無效。因此,建議在調用該操作符
*之前通過調用scale_image來調整灰度值的范圍。對於類型復雜的圖像,只轉換實部,虛部被忽略。這有助於從
*頻域轉換回的圖像的有效轉換。這樣的圖像的虛部總是為0

convert_image_type (Image2, ImageConverted2, 'int2')

sub_image (ImageConverted1, ImageConverted2, ImageSub, 1, 0)
*將兩個圖像相減

dual_threshold (ImageSub, RegionDiff, 500, 20, 10)
*把有符號的圖像分割為正負區域
*一般用在拉普拉斯算子之后,或者用來處理兩個圖像的差
*第一個輸入參數:圖像
*第二個輸出參數:分割后的正負區域
*第三個輸入參數:最小區域大小
*第四個輸入參數:最小灰度值大小
*第五個輸入參數:閾值   灰度值小於閾值(或大於-閾值)的區域將被抑制

dev_open_window(10,10,Width, Height,'black',WindowHandle)
dev_display (RegionDiff)

 

 

在QtCreator中

  HObject  ho_Image1, ho_Image2, ho_ImageConverted1;
  HObject  ho_ImageConverted2, ho_ImageSub, ho_RegionDiff;
  HTuple  hv_Width, hv_Height, hv_WindowHandle;

 

  ReadImage(&ho_Image1, "D:/bb/tu/111.png");
  ReadImage(&ho_Image2, "D:/bb/tu/112.png");
  GetImageSize(ho_Image1, &hv_Width, &hv_Height);

  ConvertImageType(ho_Image1, &ho_ImageConverted1, "int2");
  //圖像類型轉換
  //參數1:輸入圖像
  //參數2:輸出圖像
  //參數3:新類型( 'int1', 'int2', 'uint2', 'int4', 'byte', 'real', 'direction', 'cyclic', 'complex')

  //convert_image_type將任意類型的圖像轉換為任意的新圖像類型,如果從較大的灰度值范圍轉換到較小的灰度
  //值范圍(例如,從'int4'到'byte'),過大或過小的值將被簡單地“剪切”。如果結果圖像的類型是'direction',
  //那么不屬於'direction'圖像有效值范圍的灰度值將被設置為255,以表示它們無效。因此,建議在調用該操作符
  //之前通過調用scale_image來調整灰度值的范圍。對於類型復雜的圖像,只轉換實部,虛部被忽略。這有助於從
  //頻域轉換回的圖像的有效轉換。這樣的圖像的虛部總是為0

  ConvertImageType(ho_Image2, &ho_ImageConverted2, "int2");

  SubImage(ho_ImageConverted1, ho_ImageConverted2, &ho_ImageSub, 1, 0);
  //將兩個圖像相減

  DualThreshold(ho_ImageSub, &ho_RegionDiff, 500, 20, 10);
  //把有符號的圖像分割為正負區域
  //一般用在拉普拉斯算子之后,或者用來處理兩個圖像的差
  //第一個輸入參數:圖像
  //第二個輸出參數:分割后的正負區域
  //第三個輸入參數:最小區域大小
  //第四個輸入參數:最小灰度值大小
  //第五個輸入參數:閾值   灰度值小於閾值(或大於-閾值)的區域將被抑制

  SetWindowAttr("background_color","black");
  OpenWindow(10,10,hv_Width,hv_Height,0,"visible","",&hv_WindowHandle);
  HDevWindowStack::Push(hv_WindowHandle);
  if (HDevWindowStack::IsOpen())
    DispObj(ho_RegionDiff, HDevWindowStack::GetActive());

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM