OpenCV

rect1 = Rect(x, y, width, height);
------->x
|
|
y

mask = Mat::zeros(Size(), CV_8UC1);
rectangle(make, rect1, Scalar(255), thickness=-1);
//-1全区域填满

circle(mask, center, radius, Scalar(255), -1)

bitwise_and(image, mask, out);
bitwise_or

// Python
out = bitwise_and(image,mask)
void HoughLines( image, lines, double rho, double theta, int threshold, 
                 double srn=0, double stn=0 )
# 参数:
# image: 边缘检测的输出图像. 它应该是个灰度图 (但事实上是个二值化图)
# lines: 储存着检测到的直线的参数对(r, θ)的容器
# rho: 参数极径r以像素值为单位的分辨率. 1 像素.
# theta: 参数极角θ以弧度为单位的分辨率. 1度 (即CV_PI/180)
# threshold: 要"检测"一条直线所需最少的的曲线交点
# srn and stn: 参数默认为0.

void HoughLinesP( image, lines, double rho, double theta, int threshold,
                  double minLineLength=0, double maxLineGap=0 )
# 参数:
# image: 边缘检测的输出图像. 它应该是个灰度图 (但事实上是个二值化图)
# lines: 储存着检测到的直线的参数对(Xstart, Ystart, Xend, Yend)的容器,端点坐标
# rho: 参数极径r以像素值为单位的分辨率. 1 像素.
# theta: 参数极角θ以弧度为单位的分辨率. 1度 (即CV_PI/180)
# threshold: 要"检测"一条直线所需最少的的曲线交点 
# minLinLength: 能组成一条直线的最少点的数量. 点数量不足的直线将被抛弃.线段的最小长度
# maxLineGap: 线段上最近两点之间的阈值. 也就是能被认为在一条直线上的亮点的最大距离.



Canny(src, dst, 50, 200, 3);

#if 0
    vector<Vec2f> lines;  // (r, θ)
    HoughLines(dst, lines, 1, CV_PI/180, 100, 0, 0 );

    for( size_t i = 0; i < lines.size(); i++ )
    {
       float rho = lines[i][0], theta = lines[i][1];
       Point pt1, pt2;
       double a = cos(theta), b = sin(theta);
       double x0 = a*rho, y0 = b*rho;
       pt1.x = cvRound(x0 + 1000*(-b));
       pt1.y = cvRound(y0 + 1000*(a));
       pt2.x = cvRound(x0 - 1000*(-b));
       pt2.y = cvRound(y0 - 1000*(a));
       line( src, pt1, pt2, Scalar(0,0,255), 3, CV_AA);
    }

#else
    vector<Vec4i> lines;  // (X1, Y1, X2, Y2) 端点坐标
    HoughLinesP(dst, lines, 1, CV_PI/180, 50, 50, 10 );

  for( size_t i = 0; i < lines.size(); i++ )
  {
    Vec4i l = lines[i];//Vec4i 就是Vec<int, 4>,里面存放4个int
    line( src, Point(l[0], l[1]), Point(l[2], l[3]), Scalar(0,0,255), 3, CV_AA);
    // 起点:Point(l[0], l[1]),终点:Point(l[2], l[3])
  }

#endif
dst = cv2.resize(src, dsize[, dst[, fx[, fy[, interpolation]]]])

dsize不为0时,dst的大小为dsize;否则根据src的大小、参数fx和fy决定。
dst的类型(type)和src图像相同。

dsize = 0
dsize = Size(round(fx*src.cols), round(fy*src.rows))

参数dsize和参数(fx, fy)不能够同时为0.

fx -- x轴上的比例因子。当它为0时,fx = (double)dsize.width/src.cols
fy -- y轴上的比例因子。当它为0时,fy = (double)dsize.height/src.rows

interpolation -- 插值方法
--INTER_NEAREST - 最近邻插值法
--INTER_LINEAR - 双线性插值法(default)
--INTER_AREA - 基于局部像素的重采样(resampling using pixel area relation)。缩小图像时避免波纹出现。放大图像时和最近邻法的效果类似。
--INTER_CUBIC - 基于4x4像素邻域的3次方插值法(立方插值)
--INTER_LANCZOS4 - 基于8x8像素邻域的Lanczos插值

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值