小编Dan*_*šek的帖子

计算汽车OpenCV + Python问题

我一直试图在越线时计算汽车并且它可以工作,但问题是它多次计算一辆车是荒谬的,因为它应该被计算一次

这是我正在使用的代码:

import cv2
import numpy as np

bgsMOG = cv2.BackgroundSubtractorMOG()
cap    = cv2.VideoCapture("traffic.avi")
counter = 0

if cap:
    while True:
        ret, frame = cap.read()

        if ret:            
            fgmask = bgsMOG.apply(frame, None, 0.01)
            cv2.line(frame,(0,60),(160,60),(255,255,0),1)
            # To find the countours of the Cars
            contours, hierarchy = cv2.findContours(fgmask,
                                    cv2.RETR_EXTERNAL,cv2.CHAIN_APPROX_SIMPLE)

            try:
                hierarchy = hierarchy[0]

            except:
                hierarchy = []

            for contour, hier in zip(contours, hierarchy):
                (x, y, w, h) = cv2.boundingRect(contour)

                if w > 20 and h > 20:
                    cv2.rectangle(frame, (x,y), (x+w,y+h), (255, 0, 0), …
Run Code Online (Sandbox Code Playgroud)

python opencv numpy image-processing

36
推荐指数
1
解决办法
3万
查看次数

通过Linux FrameBuffer将像素绘制到屏幕上

我最近对一个奇怪的想法感到震惊,即从/ dev/urandom获取输入,将相关字符转换为随机整数,并使用这些整数作为像素的rgb/xy值绘制到屏幕上.

我做了一些研究(这里是关于StackOverflow和其他地方),许多人建议您可以直接写入/ dev/fb0,因为它是设备的文件表示.不幸的是,这似乎没有产生任何视觉上明显的结果.

我发现了一个示例C程序来自QT教程(不再可用),它使用mmap写入缓冲区.程序成功运行,但同样没有输出到屏幕.有趣的是,当我将我的笔记本电脑放入Suspend并稍后恢复时,我看到了一个瞬间闪现的图像(一个红色正方形),它被更早地写入帧缓冲区.写入帧缓冲区是否在Linux中用于绘制屏幕?理想情况下,我想写一个(ba)sh脚本,但C或类似的也可以.谢谢!

编辑:这是示例程序...兽医可能看起来很熟悉.

#include <stdlib.h>
#include <unistd.h>
#include <stdio.h>
#include <fcntl.h>
#include <linux/fb.h>
#include <sys/mman.h>
#include <sys/ioctl.h>

int main()
{
    int fbfd = 0;
    struct fb_var_screeninfo vinfo;
    struct fb_fix_screeninfo finfo;
    long int screensize = 0;
    char *fbp = 0;
    int x = 0, y = 0;
    long int location = 0;

    // Open the file for reading and writing
    fbfd = open("/dev/fb0", O_RDWR);
    if (fbfd == -1) {
        perror("Error: cannot open framebuffer device");
        exit(1);
    }
    printf("The framebuffer …
Run Code Online (Sandbox Code Playgroud)

c linux framebuffer

34
推荐指数
2
解决办法
6万
查看次数

为什么cv2.imwrite()改变了图片的颜色?

我有以下代码:

imgs = glob.glob('/home/chipin/heart/tray.png')
current_img = io.imread(imgs[0])
cv2.imwrite('/home/chipin/heart/01.png', current_img[0:511,0:511])  
Run Code Online (Sandbox Code Playgroud)

图片尺寸为512*512,保存后蓝色图片变黄.似乎放弃了一个频道.我真的不知道为什么.

这是current_img的值:

current_img的值

python opencv opencv3.0

22
推荐指数
1
解决办法
3万
查看次数

增加图像亮度而不会溢出

尝试提高图像亮度时遇到问题.

这是原始图像:

在此输入图像描述

我想要的图像是这样的:

在此输入图像描述

现在使用以下代码增加亮度:

    image = cv2.imread("/home/wni/vbshare/tmp/a4_index2.png",0)

    if sum(image[0])/len(image[0])<200:
        new = np.where((255-image)<image,255,image*2)
    else:
        new = image
    return new
Run Code Online (Sandbox Code Playgroud)

而且,我得到了以下图像:

在此输入图像描述

所以,似乎某些点的亮度溢出.

我试图将阈值从200更改为其他数字,例如125,100,140等.但是,图像亮度几乎保持相同的暗或溢出.

ENV:

Python:2.7.10

Opencv:3.2.0

对此有任何建议表示赞赏.

谢谢.

python opencv numpy image-processing

14
推荐指数
1
解决办法
6487
查看次数

扫描文档 - 使用OpenCV + iOS时文本和背景清晰度不佳

扫描文档后,我正在使用OpenCV库应用图像处理.我没有像Scannable iOS应用程序那样获得扫描文档的质量.

我使用下面的代码进行图像处理:

- (UIImage *)applyImageProcessing:(UIImage *)aImage
{
    cv::Mat originalMat = [self cvMatFromUIImage:aImage];
    cv::Mat dest_mat(aImage.size.width, aImage.size.height, CV_8UC4);
    cv::Mat intermediate_mat(aImage.size.width, aImage.size.height, CV_8UC4);

    cv::multiply(originalMat, 0.5, intermediate_mat);
    cv::add(originalMat, intermediate_mat, dest_mat);

    return [self UIImageFromCVMat:dest_mat];
}

- (cv::Mat)cvMatFromUIImage:(UIImage*)image
{
    CGColorSpaceRef colorSpace = CGImageGetColorSpace(image.CGImage);
    CGFloat cols = image.size.width;
    CGFloat rows = image.size.height;

    cv::Mat cvMat(rows, cols, CV_8UC4); // 8 bits per component, 4 channels (color channels + alpha)
    CGContextRef contextRef = CGBitmapContextCreate(cvMat.data,     // Pointer to data
                                                cols,           // Width of bitmap
                                                rows,           // Height of bitmap
                                                8, …
Run Code Online (Sandbox Code Playgroud)

opencv ios

13
推荐指数
1
解决办法
951
查看次数

如何使用OpenCV从扫描图像中删除阴影?

我想在使用OpenCV进行图像二值化之前删除阴影.我已经尝试过Otsu方法和自适应阈值处理,但是对于有大区域阴影的图像,这两种方法都不会给出好的结果.

更好的解决方案?提前致谢.

[样本图片] 1

[样本图片] 2

python opencv image-processing

12
推荐指数
1
解决办法
1万
查看次数

如何实时地在帧中加入png与alpha/transparency

我在OpenCV android 2.4.11的例子下工作,它使用相机检测面部.我没有在找到的脸上画一个矩形,而是试图在脸上放一个面具(png图像).但是为了在脸上显示图像,png图像带有透明度的黑色背景.

FdActivity.java

public void onCameraViewStarted(int width, int height) {
        mGray = new Mat();
        mRgba = new Mat();

        //Load my mask png
        Bitmap image = BitmapFactory.decodeResource(getResources(), R.drawable.mask_1);

        mask = new Mat();

        Utils.bitmapToMat(image, mask);

}

public Mat onCameraFrame(CvCameraViewFrame inputFrame) {

        mRgba = inputFrame.rgba();
        mGray = inputFrame.gray();

        if (mAbsoluteFaceSize == 0) {
            int height = mGray.rows();
            if (Math.round(height * mRelativeFaceSize) > 0) {
                mAbsoluteFaceSize = Math.round(height * mRelativeFaceSize);
            }
            mNativeDetector.setMinFaceSize(mAbsoluteFaceSize);
        }

        MatOfRect faces = new MatOfRect();

        if (mDetectorType == JAVA_DETECTOR) { …
Run Code Online (Sandbox Code Playgroud)

python camera android opencv

11
推荐指数
1
解决办法
4264
查看次数

用Haystack + Elasticsearch提升

我在'tags'字段上实现了一个提升; 但是它没有以适当的方式对我的结果进行排名.

我的search_indexes.py:

class ParagraphIndex(indexes.SearchIndex, indexes.Indexable):
    text= indexes.CharField(document=True, use_template=True, boost=1.0)
    tags= indexes.MultiValueField(boost=2.5)
    def prepare_tags(self,object):
        return [tag.tag for tag in object.tags.all()]
Run Code Online (Sandbox Code Playgroud)

我的常规搜索适用于正确的字段.我已经多次运行update_index并仍然得到相同的答案.任何帮助都感激不尽.如果需要更多信息,请告诉我!

django-haystack elasticsearch

7
推荐指数
0
解决办法
580
查看次数

在脸上画出花式矩形

我使用以下代码检测面部并在面部绘制矩形.

while True:
    # get video frame
    ret, img = cap.read()

    input_img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
    img_h, img_w, _ = np.shape(input_img)

    detected = detector(input_img, 1)

    for i, d in enumerate(detected):
        x1, y1, x2, y2, w, h = d.left(), d.top(), d.right() + 1, d.bottom() + 1, d.width(), d.height()
        cv2.rectangle(img, (x1, y1), (x2, y2), (255, 0, 0), 2)

    cv2.imshow("result", img)
    key = cv2.waitKey(30)

    if key == 27:
        break
Run Code Online (Sandbox Code Playgroud)

矩形看起来像这样:

但是我试图得到一个类似于这个的矩形:

是否有任何OpenCV或dlib函数可以帮助我获得这种有效的矩形?

python opencv image-processing dlib

7
推荐指数
1
解决办法
3937
查看次数

OpenCV 4.7.0 中未找到 cv2.aruco.CharucoBoard_create

我已经安装了 opencv-python-4.7.0.68 和 opencv-contrib-python-4.7.0.68

下面的代码给我以下错误:
AttributeError: module 'cv2.aruco' has no attribute 'CharucoBoard_create'

示例代码:

import cv2

aruco_dict = cv2.aruco.getPredefinedDictionary(cv2.aruco.DICT_4X4_50)
board = cv2.aruco.CharucoBoard_create(11, 8, 0.015, 0.011, aruco_dict)
Run Code Online (Sandbox Code Playgroud)

python opencv

7
推荐指数
1
解决办法
4538
查看次数