The following issues were found

samples/python/plane_ar.py
25 issues
Unable to import 'cv2'
Error

Line: 29 Column: 1

              from __future__ import print_function

import numpy as np
import cv2 as cv
import video
import common
from plane_tracker import PlaneTracker
from video import presets


            

Reported by Pylint.

No exception type(s) specified
Error

Line: 109 Column: 5

                  import sys
    try:
        video_src = sys.argv[1]
    except:
        video_src = 0
    App(video_src).run()

            

Reported by Pylint.

Missing class docstring
Error

Line: 44 Column: 1

                          (0, 4), (1, 5), (2, 6), (3, 7),
            (4, 8), (5, 8), (6, 9), (7, 9), (8, 9)]

class App:
    def __init__(self, src):
        self.cap = video.create_capture(src, presets['book'])
        self.frame = None
        self.paused = False
        self.tracker = PlaneTracker()

            

Reported by Pylint.

Missing function or method docstring
Error

Line: 55 Column: 5

                      cv.createTrackbar('focal', 'plane', 25, 50, common.nothing)
        self.rect_sel = common.RectSelector('plane', self.on_rect)

    def on_rect(self, rect):
        self.tracker.add_target(self.frame, rect)

    def run(self):
        while True:
            playing = not self.paused and not self.rect_sel.dragging

            

Reported by Pylint.

Missing function or method docstring
Error

Line: 58 Column: 5

                  def on_rect(self, rect):
        self.tracker.add_target(self.frame, rect)

    def run(self):
        while True:
            playing = not self.paused and not self.rect_sel.dragging
            if playing or self.frame is None:
                ret, frame = self.cap.read()
                if not ret:

            

Reported by Pylint.

Variable name "tr" doesn't conform to snake_case naming style
Error

Line: 70 Column: 21

                          vis = self.frame.copy()
            if playing:
                tracked = self.tracker.track(self.frame)
                for tr in tracked:
                    cv.polylines(vis, [np.int32(tr.quad)], True, (255, 255, 255), 2)
                    for (x, y) in np.int32(tr.p1):
                        cv.circle(vis, (x, y), 2, (255, 255, 255))
                    self.draw_overlay(vis, tr)


            

Reported by Pylint.

Variable name "x" doesn't conform to snake_case naming style
Error

Line: 72 Column: 26

                              tracked = self.tracker.track(self.frame)
                for tr in tracked:
                    cv.polylines(vis, [np.int32(tr.quad)], True, (255, 255, 255), 2)
                    for (x, y) in np.int32(tr.p1):
                        cv.circle(vis, (x, y), 2, (255, 255, 255))
                    self.draw_overlay(vis, tr)

            self.rect_sel.draw(vis)
            cv.imshow('plane', vis)

            

Reported by Pylint.

Variable name "y" doesn't conform to snake_case naming style
Error

Line: 72 Column: 29

                              tracked = self.tracker.track(self.frame)
                for tr in tracked:
                    cv.polylines(vis, [np.int32(tr.quad)], True, (255, 255, 255), 2)
                    for (x, y) in np.int32(tr.p1):
                        cv.circle(vis, (x, y), 2, (255, 255, 255))
                    self.draw_overlay(vis, tr)

            self.rect_sel.draw(vis)
            cv.imshow('plane', vis)

            

Reported by Pylint.

Variable name "ch" doesn't conform to snake_case naming style
Error

Line: 78 Column: 13

              
            self.rect_sel.draw(vis)
            cv.imshow('plane', vis)
            ch = cv.waitKey(1)
            if ch == ord(' '):
                self.paused = not self.paused
            if ch == ord('c'):
                self.tracker.clear()
            if ch == 27:

            

Reported by Pylint.

Too many local variables (19/15)
Error

Line: 86 Column: 5

                          if ch == 27:
                break

    def draw_overlay(self, vis, tracked):
        x0, y0, x1, y1 = tracked.target.rect
        quad_3d = np.float32([[x0, y0, 0], [x1, y0, 0], [x1, y1, 0], [x0, y1, 0]])
        fx = 0.5 + cv.getTrackbarPos('focal', 'plane') / 50.0
        h, w = vis.shape[:2]
        K = np.float64([[fx*w, 0, 0.5*(w-1)],

            

Reported by Pylint.

samples/python/lk_track.py
25 issues
Unable to import 'cv2'
Error

Line: 25 Column: 1

              from __future__ import print_function

import numpy as np
import cv2 as cv

import video
from common import anorm2, draw_str

lk_params = dict( winSize  = (15, 15),

            

Reported by Pylint.

Access to member 'prev_gray' before its definition line 85
Error

Line: 54 Column: 30

                          vis = frame.copy()

            if len(self.tracks) > 0:
                img0, img1 = self.prev_gray, frame_gray
                p0 = np.float32([tr[-1] for tr in self.tracks]).reshape(-1, 1, 2)
                p1, _st, _err = cv.calcOpticalFlowPyrLK(img0, img1, p0, None, **lk_params)
                p0r, _st, _err = cv.calcOpticalFlowPyrLK(img1, img0, p1, None, **lk_params)
                d = abs(p0-p0r).reshape(-1, 2).max(-1)
                good = d < 1

            

Reported by Pylint.

Too many positional arguments for method call
Error

Line: 55 Column: 22

              
            if len(self.tracks) > 0:
                img0, img1 = self.prev_gray, frame_gray
                p0 = np.float32([tr[-1] for tr in self.tracks]).reshape(-1, 1, 2)
                p1, _st, _err = cv.calcOpticalFlowPyrLK(img0, img1, p0, None, **lk_params)
                p0r, _st, _err = cv.calcOpticalFlowPyrLK(img1, img0, p1, None, **lk_params)
                d = abs(p0-p0r).reshape(-1, 2).max(-1)
                good = d < 1
                new_tracks = []

            

Reported by Pylint.

Too many positional arguments for method call
Error

Line: 80 Column: 33

                                  cv.circle(mask, (x, y), 5, 0, -1)
                p = cv.goodFeaturesToTrack(frame_gray, mask = mask, **feature_params)
                if p is not None:
                    for x, y in np.float32(p).reshape(-1, 2):
                        self.tracks.append([(x, y)])


            self.frame_idx += 1
            self.prev_gray = frame_gray

            

Reported by Pylint.

Unused anorm2 imported from common
Error

Line: 28 Column: 1

              import cv2 as cv

import video
from common import anorm2, draw_str

lk_params = dict( winSize  = (15, 15),
                  maxLevel = 2,
                  criteria = (cv.TERM_CRITERIA_EPS | cv.TERM_CRITERIA_COUNT, 10, 0.03))


            

Reported by Pylint.

Attribute 'prev_gray' defined outside __init__
Error

Line: 85 Column: 13

              

            self.frame_idx += 1
            self.prev_gray = frame_gray
            cv.imshow('lk_track', vis)

            ch = cv.waitKey(1)
            if ch == 27:
                break

            

Reported by Pylint.

No exception type(s) specified
Error

Line: 96 Column: 5

                  import sys
    try:
        video_src = sys.argv[1]
    except:
        video_src = 0

    App(video_src).run()
    print('Done')


            

Reported by Pylint.

Too few public methods (1/2)
Error

Line: 39 Column: 1

                                     minDistance = 7,
                       blockSize = 7 )

class App:
    def __init__(self, video_src):
        self.track_len = 10
        self.detect_interval = 5
        self.tracks = []
        self.cam = video.create_capture(video_src)

            

Reported by Pylint.

Missing class docstring
Error

Line: 39 Column: 1

                                     minDistance = 7,
                       blockSize = 7 )

class App:
    def __init__(self, video_src):
        self.track_len = 10
        self.detect_interval = 5
        self.tracks = []
        self.cam = video.create_capture(video_src)

            

Reported by Pylint.

Missing function or method docstring
Error

Line: 47 Column: 5

                      self.cam = video.create_capture(video_src)
        self.frame_idx = 0

    def run(self):
        while True:
            _ret, frame = self.cam.read()
            frame_gray = cv.cvtColor(frame, cv.COLOR_BGR2GRAY)
            vis = frame.copy()


            

Reported by Pylint.

modules/dnn/src/vkcom/shader/spirv_generator.py
25 issues
Starting a process with a shell, possible injection detected, security issue.
Security injection

Line: 50
Suggestion: https://bandit.readthedocs.io/en/latest/plugins/b605_start_process_with_a_shell.html

                  bin_file = prefix + '.tmp'
    cmd = ' glslangValidator -V ' + path + ' -S comp -o ' + bin_file
    print('compiling')
    if os.system(cmd) != 0:
        continue;
    size = os.path.getsize(bin_file)

    spv_txt_file = prefix + '.spv'
    cmd = 'glslangValidator -V ' + path + ' -S comp -o ' + spv_txt_file + ' -x' + null_out

            

Reported by Bandit.

Starting a process with a shell, possible injection detected, security issue.
Security injection

Line: 56
Suggestion: https://bandit.readthedocs.io/en/latest/plugins/b605_start_process_with_a_shell.html

              
    spv_txt_file = prefix + '.spv'
    cmd = 'glslangValidator -V ' + path + ' -S comp -o ' + spv_txt_file + ' -x' + null_out
    os.system(cmd)

    infile_name = spv_txt_file
    outfile_name = prefix + '_spv.cpp'
    array_name = prefix + '_spv'
    infile = open(infile_name, 'r')

            

Reported by Bandit.

Starting a process with a shell, possible injection detected, security issue.
Security injection

Line: 83
Suggestion: https://bandit.readthedocs.io/en/latest/plugins/b605_start_process_with_a_shell.html

                  fmt = 'extern const unsigned int %s[%d];\n' % (array_name, size/4)
    headfile.write(fmt)

    os.system(cmd_remove + ' ' + bin_file)
    os.system(cmd_remove + ' ' + spv_txt_file)

headfile.write(ns_tail)
headfile.write('\n#endif /* OPENCV_DNN_SPV_SHADER_HPP */\n')
headfile.close();

            

Reported by Bandit.

Starting a process with a shell, possible injection detected, security issue.
Security injection

Line: 84
Suggestion: https://bandit.readthedocs.io/en/latest/plugins/b605_start_process_with_a_shell.html

                  headfile.write(fmt)

    os.system(cmd_remove + ' ' + bin_file)
    os.system(cmd_remove + ' ' + spv_txt_file)

headfile.write(ns_tail)
headfile.write('\n#endif /* OPENCV_DNN_SPV_SHADER_HPP */\n')
headfile.close();

            

Reported by Bandit.

Redefining built-in 'dir'
Error

Line: 12 Column: 1

              import os
import sys

dir = "./"
license_decl = \
'// This file is part of OpenCV project.\n'\
'// It is subject to the license terms in the LICENSE file found in the top-level directory\n'\
'// of this distribution and at http://opencv.org/license.html.\n'\
'//\n'\

            

Reported by Pylint.

Redefining built-in 'list'
Error

Line: 39 Column: 1

                  cmd_remove = 'rm'
    null_out = ' > /dev/null 2>&1'

list = os.listdir(dir)
for i in range(0, len(list)):
    if (os.path.splitext(list[i])[-1] != '.comp'):
        continue
    prefix = os.path.splitext(list[i])[0];
    path = os.path.join(dir, list[i])

            

Reported by Pylint.

Unnecessary semicolon
Error

Line: 43 Column: 1

              for i in range(0, len(list)):
    if (os.path.splitext(list[i])[-1] != '.comp'):
        continue
    prefix = os.path.splitext(list[i])[0];
    path = os.path.join(dir, list[i])


    bin_file = prefix + '.tmp'
    cmd = ' glslangValidator -V ' + path + ' -S comp -o ' + bin_file

            

Reported by Pylint.

Unnecessary semicolon
Error

Line: 51 Column: 1

                  cmd = ' glslangValidator -V ' + path + ' -S comp -o ' + bin_file
    print('compiling')
    if os.system(cmd) != 0:
        continue;
    size = os.path.getsize(bin_file)

    spv_txt_file = prefix + '.spv'
    cmd = 'glslangValidator -V ' + path + ' -S comp -o ' + spv_txt_file + ' -x' + null_out
    os.system(cmd)

            

Reported by Pylint.

xxx.spv ==> xxx_spv.cpp
Error

Line: 67 Column: 3

                  outfile.write(license_decl)
    outfile.write(precomp)
    outfile.write(ns_head)
    # xxx.spv ==> xxx_spv.cpp
    fmt = 'extern const unsigned int %s[%d] = {\n' % (array_name, size/4)
    outfile.write(fmt)
    for eachLine in infile:
        if(re.match(r'^.*\/\/', eachLine)):
            continue

            

Reported by Pylint.

Unnecessary semicolon
Error

Line: 88 Column: 1

              
headfile.write(ns_tail)
headfile.write('\n#endif /* OPENCV_DNN_SPV_SHADER_HPP */\n')
headfile.close();

            

Reported by Pylint.

samples/java/tutorial_code/ShapeDescriptors/hull/HullDemo.java
25 issues
System.err.println is used
Design

Line: 43

                      String filename = args.length > 0 ? args[0] : "../data/stuff.jpg";
        Mat src = Imgcodecs.imread(filename);
        if (src.empty()) {
            System.err.println("Cannot read image: " + filename);
            System.exit(0);
        }

        /// Convert image to gray and blur it
        Imgproc.cvtColor(src, srcGray, Imgproc.COLOR_BGR2GRAY);

            

Reported by PMD.

Private field 'srcGray' could be made final; it is only initialized in the declaration or constructor.
Design

Line: 30

              import org.opencv.imgproc.Imgproc;

class Hull {
    private Mat srcGray = new Mat();
    private JFrame frame;
    private JLabel imgSrcLabel;
    private JLabel imgContoursLabel;
    private static final int MAX_THRESHOLD = 255;
    private int threshold = 100;

            

Reported by PMD.

Found non-transient, non-static member. Please mark as transient or provide accessors.
Error

Line: 30

              import org.opencv.imgproc.Imgproc;

class Hull {
    private Mat srcGray = new Mat();
    private JFrame frame;
    private JLabel imgSrcLabel;
    private JLabel imgContoursLabel;
    private static final int MAX_THRESHOLD = 255;
    private int threshold = 100;

            

Reported by PMD.

Private field 'frame' could be made final; it is only initialized in the declaration or constructor.
Design

Line: 31

              
class Hull {
    private Mat srcGray = new Mat();
    private JFrame frame;
    private JLabel imgSrcLabel;
    private JLabel imgContoursLabel;
    private static final int MAX_THRESHOLD = 255;
    private int threshold = 100;
    private Random rng = new Random(12345);

            

Reported by PMD.

Found non-transient, non-static member. Please mark as transient or provide accessors.
Error

Line: 31

              
class Hull {
    private Mat srcGray = new Mat();
    private JFrame frame;
    private JLabel imgSrcLabel;
    private JLabel imgContoursLabel;
    private static final int MAX_THRESHOLD = 255;
    private int threshold = 100;
    private Random rng = new Random(12345);

            

Reported by PMD.

Found non-transient, non-static member. Please mark as transient or provide accessors.
Error

Line: 32

              class Hull {
    private Mat srcGray = new Mat();
    private JFrame frame;
    private JLabel imgSrcLabel;
    private JLabel imgContoursLabel;
    private static final int MAX_THRESHOLD = 255;
    private int threshold = 100;
    private Random rng = new Random(12345);


            

Reported by PMD.

Perhaps 'imgSrcLabel' could be replaced by a local variable.
Design

Line: 32

              class Hull {
    private Mat srcGray = new Mat();
    private JFrame frame;
    private JLabel imgSrcLabel;
    private JLabel imgContoursLabel;
    private static final int MAX_THRESHOLD = 255;
    private int threshold = 100;
    private Random rng = new Random(12345);


            

Reported by PMD.

Found non-transient, non-static member. Please mark as transient or provide accessors.
Error

Line: 33

                  private Mat srcGray = new Mat();
    private JFrame frame;
    private JLabel imgSrcLabel;
    private JLabel imgContoursLabel;
    private static final int MAX_THRESHOLD = 255;
    private int threshold = 100;
    private Random rng = new Random(12345);

    public Hull(String[] args) {

            

Reported by PMD.

Found non-transient, non-static member. Please mark as transient or provide accessors.
Error

Line: 35

                  private JLabel imgSrcLabel;
    private JLabel imgContoursLabel;
    private static final int MAX_THRESHOLD = 255;
    private int threshold = 100;
    private Random rng = new Random(12345);

    public Hull(String[] args) {
        /// Load source image
        String filename = args.length > 0 ? args[0] : "../data/stuff.jpg";

            

Reported by PMD.

Found non-transient, non-static member. Please mark as transient or provide accessors.
Error

Line: 36

                  private JLabel imgContoursLabel;
    private static final int MAX_THRESHOLD = 255;
    private int threshold = 100;
    private Random rng = new Random(12345);

    public Hull(String[] args) {
        /// Load source image
        String filename = args.length > 0 ? args[0] : "../data/stuff.jpg";
        Mat src = Imgcodecs.imread(filename);

            

Reported by PMD.

samples/java/tutorial_code/ImgTrans/MakeBorder/CopyMakeBorder.java
25 issues
System.out.println is used
Design

Line: 33

              
        // Check if image is loaded fine
        if( src.empty() ) {
            System.out.println("Error opening image!");
            System.out.println("Program Arguments: [image_name -- default ../data/lena.jpg] \n");
            System.exit(-1);
        }
        //! [load]


            

Reported by PMD.

System.out.println is used
Design

Line: 34

                      // Check if image is loaded fine
        if( src.empty() ) {
            System.out.println("Error opening image!");
            System.out.println("Program Arguments: [image_name -- default ../data/lena.jpg] \n");
            System.exit(-1);
        }
        //! [load]

        // Brief how-to for this program

            

Reported by PMD.

System.out.println is used
Design

Line: 40

                      //! [load]

        // Brief how-to for this program
        System.out.println("\n" +
                "\t copyMakeBorder Demo: \n" +
                "\t -------------------- \n" +
                " ** Press 'c' to set the border to a random constant value \n" +
                " ** Press 'r' to set the border to be replicated \n" +
                " ** Press 'ESC' to exit the program \n");

            

Reported by PMD.

Potential violation of Law of Demeter (object not created locally)
Design

Line: 32

                      src = Imgcodecs.imread(imageName, Imgcodecs.IMREAD_COLOR);

        // Check if image is loaded fine
        if( src.empty() ) {
            System.out.println("Error opening image!");
            System.out.println("Program Arguments: [image_name -- default ../data/lena.jpg] \n");
            System.exit(-1);
        }
        //! [load]

            

Reported by PMD.

System.exit() should not be used in J2EE/JEE apps
Error

Line: 35

                      if( src.empty() ) {
            System.out.println("Error opening image!");
            System.out.println("Program Arguments: [image_name -- default ../data/lena.jpg] \n");
            System.exit(-1);
        }
        //! [load]

        // Brief how-to for this program
        System.out.println("\n" +

            

Reported by PMD.

Potential violation of Law of Demeter (object not created locally)
Design

Line: 53

              
        //! [init_arguments]
        // Initialize arguments for the filter
        top = (int) (0.05*src.rows()); bottom = top;
        left = (int) (0.05*src.cols()); right = left;
        //! [init_arguments]

        while( true ) {
            //! [update_value]

            

Reported by PMD.

Potential violation of Law of Demeter (object not created locally)
Design

Line: 54

                      //! [init_arguments]
        // Initialize arguments for the filter
        top = (int) (0.05*src.rows()); bottom = top;
        left = (int) (0.05*src.cols()); right = left;
        //! [init_arguments]

        while( true ) {
            //! [update_value]
            rng = new Random();

            

Reported by PMD.

Avoid instantiating new objects inside loops
Performance

Line: 59

              
        while( true ) {
            //! [update_value]
            rng = new Random();
            Scalar value = new Scalar( rng.nextInt(256),
                    rng.nextInt(256), rng.nextInt(256) );
            //! [update_value]

            //! [copymakeborder]

            

Reported by PMD.

Avoid instantiating new objects inside loops
Performance

Line: 60

                      while( true ) {
            //! [update_value]
            rng = new Random();
            Scalar value = new Scalar( rng.nextInt(256),
                    rng.nextInt(256), rng.nextInt(256) );
            //! [update_value]

            //! [copymakeborder]
            Core.copyMakeBorder( src, dst, top, bottom, left, right, borderType, value);

            

Reported by PMD.

Avoid using Literals in Conditional Statements
Error

Line: 75

                          char c = (char) HighGui.waitKey(500);
            c = Character.toLowerCase(c);

            if( c == 27 )
            { break; }
            else if( c == 'c' )
            { borderType = Core.BORDER_CONSTANT;}
            else if( c == 'r' )
            { borderType = Core.BORDER_REPLICATE;}

            

Reported by PMD.

samples/python/dis_opt_flow.py
25 issues
Unable to import 'cv2'
Error

Line: 20 Column: 1

              from __future__ import print_function

import numpy as np
import cv2 as cv

import video


def draw_flow(img, flow, step=16):

            

Reported by Pylint.

Missing function or method docstring
Error

Line: 25 Column: 1

              import video


def draw_flow(img, flow, step=16):
    h, w = img.shape[:2]
    y, x = np.mgrid[step/2:h:step, step/2:w:step].reshape(2,-1).astype(int)
    fx, fy = flow[y,x].T
    lines = np.vstack([x, y, x+fx, y+fy]).T.reshape(-1, 2, 2)
    lines = np.int32(lines + 0.5)

            

Reported by Pylint.

Variable name "h" doesn't conform to snake_case naming style
Error

Line: 26 Column: 5

              

def draw_flow(img, flow, step=16):
    h, w = img.shape[:2]
    y, x = np.mgrid[step/2:h:step, step/2:w:step].reshape(2,-1).astype(int)
    fx, fy = flow[y,x].T
    lines = np.vstack([x, y, x+fx, y+fy]).T.reshape(-1, 2, 2)
    lines = np.int32(lines + 0.5)
    vis = cv.cvtColor(img, cv.COLOR_GRAY2BGR)

            

Reported by Pylint.

Variable name "w" doesn't conform to snake_case naming style
Error

Line: 26 Column: 8

              

def draw_flow(img, flow, step=16):
    h, w = img.shape[:2]
    y, x = np.mgrid[step/2:h:step, step/2:w:step].reshape(2,-1).astype(int)
    fx, fy = flow[y,x].T
    lines = np.vstack([x, y, x+fx, y+fy]).T.reshape(-1, 2, 2)
    lines = np.int32(lines + 0.5)
    vis = cv.cvtColor(img, cv.COLOR_GRAY2BGR)

            

Reported by Pylint.

Variable name "y" doesn't conform to snake_case naming style
Error

Line: 27 Column: 5

              
def draw_flow(img, flow, step=16):
    h, w = img.shape[:2]
    y, x = np.mgrid[step/2:h:step, step/2:w:step].reshape(2,-1).astype(int)
    fx, fy = flow[y,x].T
    lines = np.vstack([x, y, x+fx, y+fy]).T.reshape(-1, 2, 2)
    lines = np.int32(lines + 0.5)
    vis = cv.cvtColor(img, cv.COLOR_GRAY2BGR)
    cv.polylines(vis, lines, 0, (0, 255, 0))

            

Reported by Pylint.

Variable name "x" doesn't conform to snake_case naming style
Error

Line: 27 Column: 8

              
def draw_flow(img, flow, step=16):
    h, w = img.shape[:2]
    y, x = np.mgrid[step/2:h:step, step/2:w:step].reshape(2,-1).astype(int)
    fx, fy = flow[y,x].T
    lines = np.vstack([x, y, x+fx, y+fy]).T.reshape(-1, 2, 2)
    lines = np.int32(lines + 0.5)
    vis = cv.cvtColor(img, cv.COLOR_GRAY2BGR)
    cv.polylines(vis, lines, 0, (0, 255, 0))

            

Reported by Pylint.

Variable name "fy" doesn't conform to snake_case naming style
Error

Line: 28 Column: 9

              def draw_flow(img, flow, step=16):
    h, w = img.shape[:2]
    y, x = np.mgrid[step/2:h:step, step/2:w:step].reshape(2,-1).astype(int)
    fx, fy = flow[y,x].T
    lines = np.vstack([x, y, x+fx, y+fy]).T.reshape(-1, 2, 2)
    lines = np.int32(lines + 0.5)
    vis = cv.cvtColor(img, cv.COLOR_GRAY2BGR)
    cv.polylines(vis, lines, 0, (0, 255, 0))
    for (x1, y1), (_x2, _y2) in lines:

            

Reported by Pylint.

Variable name "fx" doesn't conform to snake_case naming style
Error

Line: 28 Column: 5

              def draw_flow(img, flow, step=16):
    h, w = img.shape[:2]
    y, x = np.mgrid[step/2:h:step, step/2:w:step].reshape(2,-1).astype(int)
    fx, fy = flow[y,x].T
    lines = np.vstack([x, y, x+fx, y+fy]).T.reshape(-1, 2, 2)
    lines = np.int32(lines + 0.5)
    vis = cv.cvtColor(img, cv.COLOR_GRAY2BGR)
    cv.polylines(vis, lines, 0, (0, 255, 0))
    for (x1, y1), (_x2, _y2) in lines:

            

Reported by Pylint.

Variable name "y1" doesn't conform to snake_case naming style
Error

Line: 33 Column: 14

                  lines = np.int32(lines + 0.5)
    vis = cv.cvtColor(img, cv.COLOR_GRAY2BGR)
    cv.polylines(vis, lines, 0, (0, 255, 0))
    for (x1, y1), (_x2, _y2) in lines:
        cv.circle(vis, (x1, y1), 1, (0, 255, 0), -1)
    return vis


def draw_hsv(flow):

            

Reported by Pylint.

Variable name "x1" doesn't conform to snake_case naming style
Error

Line: 33 Column: 10

                  lines = np.int32(lines + 0.5)
    vis = cv.cvtColor(img, cv.COLOR_GRAY2BGR)
    cv.polylines(vis, lines, 0, (0, 255, 0))
    for (x1, y1), (_x2, _y2) in lines:
        cv.circle(vis, (x1, y1), 1, (0, 255, 0), -1)
    return vis


def draw_hsv(flow):

            

Reported by Pylint.

samples/python/tutorial_code/imgProc/anisotropic_image_segmentation/anisotropic_image_segmentation.py
25 issues
Unable to import 'cv2'
Error

Line: 2 Column: 1

              
import cv2 as cv
import numpy as np
import argparse

W = 52          # window size is WxW
C_Thr = 0.43    # threshold for coherency
LowThr = 35     # threshold1 for orientation, it ranges from 0 to 180
HighThr = 57    # threshold2 for orientation, it ranges from 0 to 180

            

Reported by Pylint.

Missing module docstring
Error

Line: 1 Column: 1

              
import cv2 as cv
import numpy as np
import argparse

W = 52          # window size is WxW
C_Thr = 0.43    # threshold for coherency
LowThr = 35     # threshold1 for orientation, it ranges from 0 to 180
HighThr = 57    # threshold2 for orientation, it ranges from 0 to 180

            

Reported by Pylint.

standard import "import argparse" should be placed before "import cv2 as cv"
Error

Line: 4 Column: 1

              
import cv2 as cv
import numpy as np
import argparse

W = 52          # window size is WxW
C_Thr = 0.43    # threshold for coherency
LowThr = 35     # threshold1 for orientation, it ranges from 0 to 180
HighThr = 57    # threshold2 for orientation, it ranges from 0 to 180

            

Reported by Pylint.

Constant name "C_Thr" doesn't conform to UPPER_CASE naming style
Error

Line: 7 Column: 1

              import argparse

W = 52          # window size is WxW
C_Thr = 0.43    # threshold for coherency
LowThr = 35     # threshold1 for orientation, it ranges from 0 to 180
HighThr = 57    # threshold2 for orientation, it ranges from 0 to 180

## [calcGST]
## [calcJ_header]

            

Reported by Pylint.

Constant name "LowThr" doesn't conform to UPPER_CASE naming style
Error

Line: 8 Column: 1

              
W = 52          # window size is WxW
C_Thr = 0.43    # threshold for coherency
LowThr = 35     # threshold1 for orientation, it ranges from 0 to 180
HighThr = 57    # threshold2 for orientation, it ranges from 0 to 180

## [calcGST]
## [calcJ_header]
## [calcGST_proto]

            

Reported by Pylint.

Constant name "HighThr" doesn't conform to UPPER_CASE naming style
Error

Line: 9 Column: 1

              W = 52          # window size is WxW
C_Thr = 0.43    # threshold for coherency
LowThr = 35     # threshold1 for orientation, it ranges from 0 to 180
HighThr = 57    # threshold2 for orientation, it ranges from 0 to 180

## [calcGST]
## [calcJ_header]
## [calcGST_proto]
def calcGST(inputIMG, w):

            

Reported by Pylint.

Function name "calcGST" doesn't conform to snake_case naming style
Error

Line: 14 Column: 1

              ## [calcGST]
## [calcJ_header]
## [calcGST_proto]
def calcGST(inputIMG, w):
## [calcGST_proto]
    img = inputIMG.astype(np.float32)

    # GST components calculation (start)
    # J =  (J11 J12; J12 J22) - GST

            

Reported by Pylint.

Argument name "inputIMG" doesn't conform to snake_case naming style
Error

Line: 14 Column: 1

              ## [calcGST]
## [calcJ_header]
## [calcGST_proto]
def calcGST(inputIMG, w):
## [calcGST_proto]
    img = inputIMG.astype(np.float32)

    # GST components calculation (start)
    # J =  (J11 J12; J12 J22) - GST

            

Reported by Pylint.

Argument name "w" doesn't conform to snake_case naming style
Error

Line: 14 Column: 1

              ## [calcGST]
## [calcJ_header]
## [calcGST_proto]
def calcGST(inputIMG, w):
## [calcGST_proto]
    img = inputIMG.astype(np.float32)

    # GST components calculation (start)
    # J =  (J11 J12; J12 J22) - GST

            

Reported by Pylint.

Missing function or method docstring
Error

Line: 14 Column: 1

              ## [calcGST]
## [calcJ_header]
## [calcGST_proto]
def calcGST(inputIMG, w):
## [calcGST_proto]
    img = inputIMG.astype(np.float32)

    # GST components calculation (start)
    # J =  (J11 J12; J12 J22) - GST

            

Reported by Pylint.

samples/java/tutorial_code/TrackingMotion/corner_subpixels/CornerSubPixDemo.java
24 issues
System.err.println is used
Design

Line: 41

                      String filename = args.length > 0 ? args[0] : "../data/pic3.png";
        src = Imgcodecs.imread(filename);
        if (src.empty()) {
            System.err.println("Cannot read image: " + filename);
            System.exit(0);
        }

        Imgproc.cvtColor(src, srcGray, Imgproc.COLOR_BGR2GRAY);


            

Reported by PMD.

System.out.println is used
Design

Line: 109

                              blockSize, gradientSize, useHarrisDetector, k);

        /// Draw corners detected
        System.out.println("** Number of corners detected: " + corners.rows());
        int[] cornersData = new int[(int) (corners.total() * corners.channels())];
        corners.get(0, 0, cornersData);
        int radius = 4;
        Mat matCorners = new Mat(corners.rows(), 2, CvType.CV_32F);
        float[] matCornersData = new float[(int) (matCorners.total() * matCorners.channels())];

            

Reported by PMD.

System.out.println is used
Design

Line: 138

                      /// Write them down
        matCorners.get(0, 0, matCornersData);
        for (int i = 0; i < corners.rows(); i++) {
            System.out.println(
                    " -- Refined Corner [" + i + "]  (" + matCornersData[i * 2] + "," + matCornersData[i * 2 + 1] + ")");
        }
    }
}


            

Reported by PMD.

The field initializer for 'src' is never used (overwritten on line 39)
Design

Line: 28

              import org.opencv.imgproc.Imgproc;

class CornerSubPix {
    private Mat src = new Mat();
    private Mat srcGray = new Mat();
    private JFrame frame;
    private JLabel imgLabel;
    private static final int MAX_CORNERS = 25;
    private int maxCorners = 10;

            

Reported by PMD.

Found non-transient, non-static member. Please mark as transient or provide accessors.
Error

Line: 28

              import org.opencv.imgproc.Imgproc;

class CornerSubPix {
    private Mat src = new Mat();
    private Mat srcGray = new Mat();
    private JFrame frame;
    private JLabel imgLabel;
    private static final int MAX_CORNERS = 25;
    private int maxCorners = 10;

            

Reported by PMD.

Private field 'src' could be made final; it is only initialized in the declaration or constructor.
Design

Line: 28

              import org.opencv.imgproc.Imgproc;

class CornerSubPix {
    private Mat src = new Mat();
    private Mat srcGray = new Mat();
    private JFrame frame;
    private JLabel imgLabel;
    private static final int MAX_CORNERS = 25;
    private int maxCorners = 10;

            

Reported by PMD.

Private field 'srcGray' could be made final; it is only initialized in the declaration or constructor.
Design

Line: 29

              
class CornerSubPix {
    private Mat src = new Mat();
    private Mat srcGray = new Mat();
    private JFrame frame;
    private JLabel imgLabel;
    private static final int MAX_CORNERS = 25;
    private int maxCorners = 10;
    private Random rng = new Random(12345);

            

Reported by PMD.

Found non-transient, non-static member. Please mark as transient or provide accessors.
Error

Line: 29

              
class CornerSubPix {
    private Mat src = new Mat();
    private Mat srcGray = new Mat();
    private JFrame frame;
    private JLabel imgLabel;
    private static final int MAX_CORNERS = 25;
    private int maxCorners = 10;
    private Random rng = new Random(12345);

            

Reported by PMD.

Found non-transient, non-static member. Please mark as transient or provide accessors.
Error

Line: 30

              class CornerSubPix {
    private Mat src = new Mat();
    private Mat srcGray = new Mat();
    private JFrame frame;
    private JLabel imgLabel;
    private static final int MAX_CORNERS = 25;
    private int maxCorners = 10;
    private Random rng = new Random(12345);


            

Reported by PMD.

Private field 'frame' could be made final; it is only initialized in the declaration or constructor.
Design

Line: 30

              class CornerSubPix {
    private Mat src = new Mat();
    private Mat srcGray = new Mat();
    private JFrame frame;
    private JLabel imgLabel;
    private static final int MAX_CORNERS = 25;
    private int maxCorners = 10;
    private Random rng = new Random(12345);


            

Reported by PMD.

samples/dnn/human_parsing.py
24 issues
Unable to import 'cv2'
Error

Line: 45 Column: 1

              import argparse
import os.path
import numpy as np
import cv2 as cv


backends = (cv.dnn.DNN_BACKEND_DEFAULT, cv.dnn.DNN_BACKEND_INFERENCE_ENGINE, cv.dnn.DNN_BACKEND_OPENCV,
            cv.dnn.DNN_BACKEND_VKCOM, cv.dnn.DNN_BACKEND_CUDA)
targets = (cv.dnn.DNN_TARGET_CPU, cv.dnn.DNN_TARGET_OPENCL, cv.dnn.DNN_TARGET_OPENCL_FP16, cv.dnn.DNN_TARGET_MYRIAD,

            

Reported by Pylint.

Redefining name 'image' from outer scope (line 185)
Error

Line: 54 Column: 16

                         cv.dnn.DNN_TARGET_HDDL, cv.dnn.DNN_TARGET_VULKAN, cv.dnn.DNN_TARGET_CUDA, cv.dnn.DNN_TARGET_CUDA_FP16)


def preprocess(image):
    """
    Create 4-dimensional blob from image and flip image
    :param image: input image
    """
    image_rev = np.flip(image, axis=1)

            

Reported by Pylint.

Redefining built-in 'input'
Error

Line: 60 Column: 5

                  :param image: input image
    """
    image_rev = np.flip(image, axis=1)
    input = cv.dnn.blobFromImages([image, image_rev], mean=(104.00698793, 116.66876762, 122.67891434))
    return input


def run_net(input, model_path, backend, target):
    """

            

Reported by Pylint.

Redefining built-in 'input'
Error

Line: 64 Column: 13

                  return input


def run_net(input, model_path, backend, target):
    """
    Read network and infer model
    :param model_path: path to JPPNet model
    :param backend: computation backend
    :param target: computation device

            

Reported by Pylint.

Possible unbalanced tuple unpacking with sequence defined at line 785 of numpy.lib.shape_base: left side has 2 label(s), right side has 0 value(s)
Error

Line: 106 Column: 5

                  # 17 RightLeg
    # 18 LeftShoe
    # 19 RightShoe
    head_output, tail_output = np.split(out, indices_or_sections=[1], axis=0)
    head_output = head_output.squeeze(0)
    tail_output = tail_output.squeeze(0)

    head_output = np.stack([cv.resize(img, dsize=input_shape) for img in head_output[:, ...]])
    tail_output = np.stack([cv.resize(img, dsize=input_shape) for img in tail_output[:, ...]])

            

Reported by Pylint.

Redefining name 'image' from outer scope (line 185)
Error

Line: 142 Column: 17

                  return segm


def parse_human(image, model_path, backend=cv.dnn.DNN_BACKEND_OPENCV, target=cv.dnn.DNN_TARGET_CPU):
    """
    Prepare input for execution, run net and postprocess output to parse human.
    :param image: input image
    :param model_path: path to JPPNet model
    :param backend: name of computation backend

            

Reported by Pylint.

Redefining built-in 'input'
Error

Line: 150 Column: 5

                  :param backend: name of computation backend
    :param target: name of computation target
    """
    input = preprocess(image)
    input_h, input_w = input.shape[2:]
    output = run_net(input, model_path, backend, target)
    grayscale_out = postprocess(output, (input_w, input_h))
    segmentation = decode_labels(grayscale_out)
    return segmentation

            

Reported by Pylint.

Redefining name 'output' from outer scope (line 186)
Error

Line: 152 Column: 5

                  """
    input = preprocess(image)
    input_h, input_w = input.shape[2:]
    output = run_net(input, model_path, backend, target)
    grayscale_out = postprocess(output, (input_w, input_h))
    segmentation = decode_labels(grayscale_out)
    return segmentation



            

Reported by Pylint.

Line too long (109/100)
Error

Line: 3 Column: 1

              #!/usr/bin/env python
'''
You can download the converted pb model from https://www.dropbox.com/s/qag9vzambhhkvxr/lip_jppnet_384.pb?dl=0
or convert the model yourself.

Follow these steps if you want to convert the original model yourself:
    To get original .meta pre-trained model download https://drive.google.com/file/d/1BFVXgeln-bek8TCbRjN6utPAgRE0LJZg/view
    For correct convert .meta to .pb model download original repository https://github.com/Engineering-Course/LIP_JPPNet
    Change script evaluate_parsing_JPPNet-s2.py for human parsing

            

Reported by Pylint.

Line too long (123/100)
Error

Line: 7 Column: 1

              or convert the model yourself.

Follow these steps if you want to convert the original model yourself:
    To get original .meta pre-trained model download https://drive.google.com/file/d/1BFVXgeln-bek8TCbRjN6utPAgRE0LJZg/view
    For correct convert .meta to .pb model download original repository https://github.com/Engineering-Course/LIP_JPPNet
    Change script evaluate_parsing_JPPNet-s2.py for human parsing
    1. Remove preprocessing to create image_batch_origin:
        with tf.name_scope("create_inputs"):
        ...

            

Reported by Pylint.

samples/python/tutorial_code/TrackingMotion/corner_subpixels/cornerSubPix_Demo.py
24 issues
Unable to import 'cv2'
Error

Line: 2 Column: 1

              from __future__ import print_function
import cv2 as cv
import numpy as np
import argparse
import random as rng

source_window = 'Image'
maxTrackbar = 25
rng.seed(12345)

            

Reported by Pylint.

Redefining name 'maxCorners' from outer scope (line 65)
Error

Line: 12 Column: 5

              rng.seed(12345)

def goodFeaturesToTrack_Demo(val):
    maxCorners = max(val, 1)

    # Parameters for Shi-Tomasi algorithm
    qualityLevel = 0.01
    minDistance = 10
    blockSize = 3

            

Reported by Pylint.

Module name "cornerSubPix_Demo" doesn't conform to snake_case naming style
Error

Line: 1 Column: 1

              from __future__ import print_function
import cv2 as cv
import numpy as np
import argparse
import random as rng

source_window = 'Image'
maxTrackbar = 25
rng.seed(12345)

            

Reported by Pylint.

Missing module docstring
Error

Line: 1 Column: 1

              from __future__ import print_function
import cv2 as cv
import numpy as np
import argparse
import random as rng

source_window = 'Image'
maxTrackbar = 25
rng.seed(12345)

            

Reported by Pylint.

standard import "import argparse" should be placed before "import cv2 as cv"
Error

Line: 4 Column: 1

              from __future__ import print_function
import cv2 as cv
import numpy as np
import argparse
import random as rng

source_window = 'Image'
maxTrackbar = 25
rng.seed(12345)

            

Reported by Pylint.

standard import "import random as rng" should be placed before "import cv2 as cv"
Error

Line: 5 Column: 1

              import cv2 as cv
import numpy as np
import argparse
import random as rng

source_window = 'Image'
maxTrackbar = 25
rng.seed(12345)


            

Reported by Pylint.

Constant name "source_window" doesn't conform to UPPER_CASE naming style
Error

Line: 7 Column: 1

              import argparse
import random as rng

source_window = 'Image'
maxTrackbar = 25
rng.seed(12345)

def goodFeaturesToTrack_Demo(val):
    maxCorners = max(val, 1)

            

Reported by Pylint.

Constant name "maxTrackbar" doesn't conform to UPPER_CASE naming style
Error

Line: 8 Column: 1

              import random as rng

source_window = 'Image'
maxTrackbar = 25
rng.seed(12345)

def goodFeaturesToTrack_Demo(val):
    maxCorners = max(val, 1)


            

Reported by Pylint.

Function name "goodFeaturesToTrack_Demo" doesn't conform to snake_case naming style
Error

Line: 11 Column: 1

              maxTrackbar = 25
rng.seed(12345)

def goodFeaturesToTrack_Demo(val):
    maxCorners = max(val, 1)

    # Parameters for Shi-Tomasi algorithm
    qualityLevel = 0.01
    minDistance = 10

            

Reported by Pylint.

Missing function or method docstring
Error

Line: 11 Column: 1

              maxTrackbar = 25
rng.seed(12345)

def goodFeaturesToTrack_Demo(val):
    maxCorners = max(val, 1)

    # Parameters for Shi-Tomasi algorithm
    qualityLevel = 0.01
    minDistance = 10

            

Reported by Pylint.