vcmenu_show()
now prints a warning if unable to backup background image.vcmenu_show()
now also works with 0x7f as backspace.vc_lut2d2dhmg_hmg_map()
for bigger number ranges.chprint_4x6_select()
, chprint_script_26_32()
.copy_with_bitmask()
, merge_with_bitmask()
, set_with_bitmask()
.vc_base64_encode()
, vc_base64_decode()
, vc_sha1()
.rlc_move()
if movement is bigger than the rlc image.vc_bestfit_poly2d1d_calculate_maxDev()
result.ImageOffset()
.AND_image()
.rlc_print_line_compact()
.vc_line_greys()
and vc_line_greys_scaled()
.vcmenu_init_vcbcinit()
.linear_regression()
.image
struct including the IMAGE_
types at the flib's/powerlib's vctypes.h
the vclib's declaration at the vclib.h
has been gated.rlc_zoom()
and enhanced it for downzooming.chprint_4x6()
.fwrite_image_vector_color()
.rlc_label_fast()
for faster labelling using extra information.fread_image_size()
to read BMP size beforehand.vc_slc_neighbour44_equivalence()
.vc_median_anisotropic_1x9()
and vc_median_anisotropic_1x9_padded()
.rlcand_slc()
.vc_clc...()
.vc_corr_census()
and surroundings for doing a Census Correlation.vc_bestfit_poly2d2d_calculate_poly_errorband()
which handles bands.NormalizedCorrelation()
function at mode 1.main()
.rlc_mask_image()
for small dst dx sizes.vc_lut2d2dhmg_map()
and Hough Linefinder.VCPolynom2D1D
struct and functions for it.VCPolynom2D2D
and VCPolynom1D1D
as well as at VCMenu
.vc_cam_init()
.vc_bestfit_poly1d1d_calculate_chiSquare()
.init_debug_display()
.rlc_sgmt44()
.nonmax_suppression()
now accepts in-place IMAGE_VECTOR
.vc_svg_text()
and vc_svg_doc_view()
.int
types by its more specific type I32
.vc_svg_()
to generate SVGs (Scaleable Vector Graphics), handy for annotating pixel images with debug information.IntersectionPointsWithRect()
vc_lutU8_generate_*()
functions.vcmenu_store_values_in_file()
to accept arbitrary string lengths by allocating a buffer.edgecontour()
, GetLibVerString_VCLIB()
.histo_U32_value_quantile()
, vc_poly1d1d_copy()
, vc_poly2d2d_copy()
, vc_draw_edgecontours_()
, PL_transform()
, vc_bestfit_poly1d1d_successive()
, vc_poly1d1d_get_scale()
, vc_successive_fit()
, LineTranslate()
, vc_centerpoint()
, vc_centerpoint_successive_fit()
, fread_rlc()
posix variant, chprint_centered_at_pos_lines()
, rlcout_pixellist()
, vc_poly1d1d_line_intersection()
, vc_poly2d2d_pow_get/set()
, ImageROI()
, PointLineProjection()
, vc_poly1d1d_derive_and_allocate()
, vc_poly1d1d_zero_crossing()
, VCPolynom1D1D
and vc_bestfit_poly1d1d_...()
.chprint_centered_at_pos_lines()
at bottom right border.vcmenu_read_values_from_file()
, the following pair matched before: menu variable 'ABC' == key in file 'ABCD'.vc_libvclib_check_header_ver()
to be able to check header version with library version.vclib5
to link against vclib6
:laplace()
to vc_laplace()
.draw_line()
to vc_draw_line()
.draw_lined()
to vc_draw_lined()
.draw_linex()
to vc_draw_linex()
.draw_vclined()
to vc_draw_vclined()
.draw_vclinex()
to vc_draw_vclinex()
.draw_polygon()
to vc_draw_polygon()
.draw_polygond()
to vc_draw_polygond()
.draw_polygonx()
to vc_draw_polygonx()
.draw_circle()
to vc_draw_circle()
.draw_circled()
to vc_draw_circled()
.draw_circlex()
to vc_draw_circlex()
.EVarType
to VCType
.TYPE_...
to VCTYPE_...
.strEnumVarType
to str_VCType
.bytesEnumVarType
to bytes_VCType
.SVCMenu*
to VCMenu*
.NULL_SVCMENU
to NULL_VCMenu
.rl_color()
.rlcmkv()
.fwrite_jpeg()
also works now under linux.HoughCircleTransform()
.barcode_search_omnidirectional_continue()
Memory Leak.rlc_mirrorH()
.histo_at_rlc()
, histo_grey_value_quantile()
, rlc_fill_polygons_simple()
.rlc_select_by_polygon_simple()
, rlc_draw_polygon()
.mom_calc_ai1()
, mom_calc_ai2()
, mom_calc_ai3()
.fill_polygon_simple()
, vc_line_restrict_to_image()
, rlc_drawlinesegment()
.NormalizedCorrelation()
and NormalizedCorrelationI32_2()
.LinePerpendicular()
in-place now.mom_calc_phi3()
and mom_calc_phi4()
.BarPar
,SBCSettings
,SBCRegion
Struct and Selector DefinesSSFSettings
, SSFPattern
, SSFResult
Struct and initializers.QuietZoneSize
and DmSearchContr
to DMParameter (->v.21).gradient_3x3()
and gradient_3x3_threshold()
change.rlcinv()
, rlc_feret/2()
.draw_histo()
rlc_move()
.BarCorrV2()
.bin0()
(e.g. binarize()
) if dst->dx/dy < src->dx/dy.area_grey_value_quantile()
, zoom_up_xy()
, rlcmk_sub()
, rlc_cutframe()
,rlc90()
,rlc180()
,rlc_mirrorH()
,rlc_mirrorV()
, rlc_shear_x()
,rlcmk_seed()
,rlcmk_seed2()
,rlc_rect()
,rlc_drawline()
, rlc_movef2()
,rlc_movef_repeatBorderCol()
,sf_pattern_draw()
.VCLIB_MAINVERSION
as major versionChangeValue
: changed parameter from I8 *
to char *
FAST
define from vclib.h
.edgecontours_from_edgeimage()
and edgecontour()
: Changed Threshold Handling directly at Threshold Value (Pixel value >= Threshold now belongs to the contour (before only >)). This leads to HoughCircle binarization threshold handling at threshold grey value now fits to the old behaviour again.str_imageType()
macro.IMAGE_UNSET
.draw_polygond/x()
and draw_polylined/x()
vc_license_init_file()
, etc.DO_RELEASE_POINTERS
used by pointer lists.edgecontours_from_edgeimage()
: Added maglist
and dirlist
.edgecontour()
: Added maglist
and dirlist
.subpixel_edgecontour()
: Added maglist
.ImgConvert_I32_U8(image \*Src32, image \*Dst)
: Src32.dx
and Src32.dy
now remain unchanged.pmed5x5()
and pmed7x7()
.median3()
now returns standard error code.HoughCircleTransform()
now destroys edge input image. This was a necessary part of a bugfix. If you need the image afterwards, be sure to back up it prior.SetFalseColorLUT()
.FindMax32()
, FindMaxImage16()
, and FindMaxImage8()
can now handle NULL pointers for coordinates.rlcmkfc()
to flib.complete doxygen documentation added on::
affine_image_transform3()
using biquadratic interpolationmedian1xN()
1xN median filtermedianNx1()
Nx1 median filterbarcode_search_omnidirectional()
GradientAngle()
to compute an average direction out of a gradient image. (GradientAngle()
- REMARK for alpha users of the function: definition of angle changed)rlcmkv()
for vertical RLC generationNormalizedCorrelation()
, NormalizedCorrelationI32()
, BarCorrV()
and BarCorrV2()
added: correlation for vertically structured objects like barcodeLineParallel()
, LineParametersA()
, VectorDifference()
, VectorSum, etc.homography_image_transform()
for homographic image transformfourpoint_calculate()
to calculate the homography from 4 pointsrlc90()
to rotate RLC by 90 degreeshysteresis_RLC()
. RLC generation with hysteresis thresholdingbox_DoG_filter()
: Difference-of-Gaussian filter with arbitrary sizeFindLines()
simplifying the use of the Hough Transform for linesHoughRectangle()
to search for arbitrary rectangles in an edge imageImageAllocateEdge()
to allocate an image with a border around itrlc_delete()
: function now returns (U16 *), functionality improvededgecontours_from_edgeimage()
to extract contours from an edge image.subpixel_edgecontour()
: subpixel precise edge detectionblock_orientation_histogram_16x16()
gradient_3x3_thresh()
: gradient image with thresholddraw_histo()
for histogram displayrlc_feret()
and rlc_minmax_feret()
to calculate RLC projections in any (all) direction(s)rlc_getobject()
, rlc_keep_object()
, rlc_zoom()
changed definition of djpeg_b macro to::
#define djpeg_b(img) djpeg(img, 1L, (int (*)())rd_binary)
was::
#define djpeg_b(img) djpeg(img, 0L, (int (*)())rd_binary)
new definition gives correct return value = 1L when function terminates properly.