Security News
Create React App Officially Deprecated Amid React 19 Compatibility Issues
Create React App is officially deprecated due to React 19 issues and lack of maintenance—developers should switch to Vite or other modern alternatives.
Rbind is developed to automatically generate ruby bindings for OpenCV but is not tight to this library. It allows to import already wrapped types from other gems/libraries using rbind to share the same types across multiple gems/libraries. For now rbind uses a copy of the OpenCV python hdr parser to parse c/c++ header files and looks for certain defines. This gem is still under heavy development and the API might change in the future.
require 'rbind'
rbind = Rbind::Rbind.new("OpenCV")
# add dependency to opencv
rbind.pkg_config << "opencv"
#add opencv headers
rbind.includes = ["opencv2/core/core_c.h", "opencv2/core/types_c.h",
"opencv2/core/core.hpp", "opencv2/flann/miniflann.hpp",
"opencv2/imgproc/imgproc_c.h", "opencv2/imgproc/types_c.h",
"opencv2/imgproc/imgproc.hpp", "opencv2/photo/photo_c.h",
"opencv2/photo/photo.hpp", "opencv2/video/video.hpp",
"opencv2/features2d/features2d.hpp", "opencv2/objdetect/objdetect.hpp",
"opencv2/calib3d/calib3d.hpp", "opencv2/ml/ml.hpp",
"opencv2/highgui/highgui_c.h", "opencv2/highgui/highgui.hpp",
"opencv2/contrib/contrib.hpp", "opencv2/nonfree/nonfree.hpp",
"opencv2/nonfree/features2d.hpp"]
# auto add vector and ptr types
rbind.on_type_not_found do |owner,type|
if type =~ /Ptr_(.*)/
t = rbind.parser.find_type(owner,$1)
t2 = Rbind::RPtr.new(type,rbind,t).typedef("cv::Ptr<#{t.full_name} >")
rbind.parser.add_type t2
elsif type =~ /vector_(.*)/
t = rbind.parser.find_type(owner,$1)
t2 = Rbind::RVector.new(type,rbind,t).typedef("std::vector<#{t.full_name} >")
rbind.parser.add_type t2
end
end
# parse type definitions
rbind.parse File.join(File.dirname(__FILE__),"pre_opencv244.txt")
rbind.parse File.join(File.dirname(__FILE__),"opencv.txt")
# using namespace cv (cv::Mat can now be addressed as Mat)
rbind.use_namespace rbind.cv
# alias a type
rbind.cv.types_alias["string"] = rbind.cv.String
# parse headers
rbind.parse_headers
# fix some errors because of missing defines in the c++ headers
rbind.cv.putText.parameter(0).add_flag(:IO)
rbind.cv.chamerMatching.parameter(0).add_flag(:IO)
rbind.cv.chamerMatching.parameter(1).add_flag(:IO)
rbind.cv.chamerMatching.parameter(2).add_flag(:IO)
# add some more vector types
rbind.parser.find_type(rbind,"vector_Point3f")
rbind.parser.find_type(rbind,"vector_Point3d")
# generate files
rbind.generator_ruby.file_prefix = "ropencv"
rbind.generate(File.join(File.dirname(__FILE__),"src"),File.join(File.dirname(__FILE__),"..","lib","ruby","ropencv"))
...
class cv.RNG
uint64 state
cv.RNG.RNG
cv.RNG.RNG
uint64 state
cv.RNG.uniform int
int a
int b
cv.RNG.uniform float
float a
float b
cv.RNG.uniform double
double a
double b
cv.RNG.fill void
Mat mat /IO
int distType
Mat a
Mat b
bool saturateRange false
cv.RNG.gaussian double
double sigma
require 'ropencv'
include OpenCV
scalar = cv::Scalar.new(1,0,0,0)
scalar[2] = 2
puts scalar[0]
puts scalar[1]
puts scalar[2]
puts scalar[3]
require 'rbind'
rbind = Rbind::Rbind.new("FrameHelper")
# add pkg config dependency
rbind.pkg_config << "base-types"
# add dependency to ruby bindings for opencv
rbind.gems << "ropencv"
# add headers which shall be parsed
rbind.includes = [File.absolute_path(File.join(File.dirname(__FILE__),"..","..","src","FrameHelperTypes.h")),
File.absolute_path(File.join(File.dirname(__FILE__),"..","..","src","FrameHelper.h"))]
# parse additional file specifying some types
rbind.parse File.join(File.dirname(__FILE__),"types.txt")
# parse types exported by the gem ropencv
rbind.parse_extern
# using namespace cv (cv::Mat can now be addressed as Mat)
rbind.use_namespace rbind.cv
# parse headers
rbind.parse_headers
# add additional target to the linker
rbind.libs << "frame_helper"
# generate all files
rbind.generate(File.join(File.dirname(__FILE__),"src"),File.join(File.dirname(__FILE__),"lib","ruby","frame_helper"))
struct base.samples.frame.Frame
base.samples.frame.Frame.Frame
class CV_EXPORTS_W FrameHelper
{
...
public:
CV_WRAP FrameHelper();
CV_WRAP void convert(const base::samples::frame::Frame &src,CV_OUT base::samples::frame::Frame &dst,
int offset_x = 0, int offset_y = 0, int algo = INTER_LINEAR, bool bundistort=false);
...
}
FAQs
Unknown package
We found that rbind demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Create React App is officially deprecated due to React 19 issues and lack of maintenance—developers should switch to Vite or other modern alternatives.
Security News
Oracle seeks to dismiss fraud claims in the JavaScript trademark dispute, delaying the case and avoiding questions about its right to the name.
Security News
The Linux Foundation is warning open source developers that compliance with global sanctions is mandatory, highlighting legal risks and restrictions on contributions.