技術情報

Basic HandTracking in Python, OpenCV using mediapipe

Today I would like to share about tracking hands in python and opencv using mediapipe library.

Let’s take a look.

OpenCV is a tool for image processing and performing computer vision tasks. It is an open-source library that can be used to perform tasks like face detection, objection tracking, landmark detection, and much more. It supports multiple languages including python, java C++.

MediaPipe is Google’s open-source framework for media processing. It is cross-platform that can run on Android, iOS, web.

First of all, we will import required libraries in line 1 to 3.

Next, in line 6, we need to create a VideoCapture Object to capture a video from a webcam.

And if not found camera, info message is displayed in line 9.

Then in line 14 to 16, we will call the methods of MediaPipe and create a Hands() object to detect handlandmarks.

Next, in line 21, while camera is opened, we will handle hand tracking processes .

In line 22 and 23, read the images from the camera and convert the images to RGB images because we will have to pass only RGB images in hands.process(imgRGB) of line 25.

In line 26, we can get hand Landmarks easily by the help of mediapipe. If we print landmarks, we will see they are coordinates in line 27.

And we need to draw every hand landmarks by using drawing_utils of mediapipe in line 29 to 31.

And we will also show the frame rate of the camera. So we will calculate fps with cTime(current time) and pTime(previous time) by using time library in line 33 and 35. Before that, firstly cTime and pTime are also needed to assign into 0 in line 18 and 19.

Then we will write fps value on the display capture in line 37.

Finally, in line 39 and 40, we output the live capture.

There we go.

So this is all for now. For further details information, here are the reference links.

https://docs.opencv.org/4.x/d6/d00/tutorial_py_root.html

https://google.github.io/mediapipe/getting_started/python.html

Hope you enjoy that.

By Asahi



Searching code snippets

Developers often spend hours searching for snippets to use and Google for StackOverflow on Sourcegraph. I will introduce to a website called snipt.dev , a search engine for codes you can reuse.

Code snippets are blocks of code that you can share and reuse. Reusing safe and tested code not only improves productivity, but also always imports the correct code for missing arguments (missing arguments, unchecked error codes, exceptions, etc.).

We usually don’t remember all the details for writing a block of code. If there are required or optional parameters, what parameters does the function take and what are their types? Code snippets allow you to use the code patterns directly to maximize your productivity.

snipt.dev is a code snippet search engine. You don’t have to google for hours. Find the snippet that’s right for you. For example, if you search for “react typescript”, snipt.dev will only show Snippets related to TypeScript, and “react javascript” will only show snippets related to JavaScript (and obviously react).

For example, if I want to search for array sorting code snippet for JavaScript,

I think this service is pretty convenient for developers like us. I hope this might be helpful for you too.

Yuuma



LaravelでLocalでない場合のhttps対応

今回はhttpでアクセスしようとしてる時発生した問題をどうやって解決できるかを共有したいかなと思います。

Staging環境や本番環境に対応すると、期待した画面が出ず、デザイン・機能が実行していない状態が続きました。

デベロッパーツールから確認すると、httpsではなくhttpでアクセスしようとしてることがわかりました。

ということで、以下のように修正すると、httpsでアクセスできることを確認できます。

web.phpで直接修正

//.env APP_ENV=localでない場合https化
if (config('app.env') === 'production' or config('app.env') === 'staging') {
    URL::forceScheme('https');
}

これで再度確認すると、httpsでアクセスでき、画面も機能も動いています。

金曜担当 : Ami



DataTablesを使用したテーブル生成とサーバーサイド連携(6)

本記事ではDataTablesを使用したテーブル生成方法とサーバーサイド連携方法をシェアします。
今回は前回の記事で説明をおこなったサーバーサイドでのページング処理実装の続きをおこなっていきたいと思います。

続きを読む

Most used 5 Python Image Processing Libraries

Today, I would like to share about most used image processing libraries in python. Let’s take a look.

OpenCV

First released in 2000, OpenCV has become a popular library due to its ease of use and readability. It is mostly used in computer vision tasks such as object detection, face detection, face recognition, image segmentation, etc.

Scikit-Image

Scikit-Image is a python-based image processing library that has some parts written in Cython to achieve good performance. It is a collection of algorithms for image processing such as:

  • Segmentation,
  • Geometric transformations,
  • Color space manipulation,
  • Analysis,
  • Filtering,
  • Morphology,
  • Feature detection

Pillow/PIL

PIL (Python Imaging Library) is an open-source library for image processing in Python. PIL can perform tasks on an image such as reading, rescaling, saving in different image formats. PIL can be used for Image archives, Image processing, Image display.

NumPy

NumPy(Numerical Python) is a open-source Python library for data manipulation and scientific computing. It is used in the domain of linear algebra, Fourier transforms, matrices, and the data science field. NumPy arrays are faster than Python Lists. And an image is essentially an array of pixel values where each pixel is represented by 1 (greyscale) or 3 (RGB) values. So, NumPy can easily perform tasks such as image cropping, masking, or manipulation of pixel values.

Matplotlib

Matplotlib is mostly used for 2D visualizations, but it can also be leveraged for image processing. Matplotlib is effective in altering images for extracting information out of it although it does not support all the file formats.

This is all for now.

Hope you enjoy that.

By Asahi




アプリ関連ニュース

お問い合わせはこちら

お問い合わせ・ご相談はお電話、またはお問い合わせフォームよりお受け付けいたしております。

tel. 06-6454-8833(平日 10:00~17:00)

お問い合わせフォーム