Book Image

Smart Internet of Things Projects

By : Agus Kurniawan
Book Image

Smart Internet of Things Projects

By: Agus Kurniawan

Overview of this book

Internet of Things (IoT) is a groundbreaking technology that involves connecting numerous physical devices to the Internet and controlling them. Creating basic IoT projects is common, but imagine building smart IoT projects that can extract data from physical devices, thereby making decisions by themselves. Our book overcomes the challenge of analyzing data from physical devices and accomplishes all that your imagination can dream up by teaching you how to build smart IoT projects. Basic statistics and various applied algorithms in data science and machine learning are introduced to accelerate your knowledge of how to integrate a decision system into a physical device. This book contains IoT projects such as building a smart temperature controller, creating your own vision machine project, building an autonomous mobile robot car, controlling IoT projects through voice commands, building IoT applications utilizing cloud technology and data science, and many more. We will also leverage a small yet powerful IoT chip, Raspberry Pi with Arduino, in order to integrate a smart decision-making system in the IoT projects.
Table of Contents (13 chapters)
Smart Internet of Things Projects
Credits
About the Author
About the Reviewer
www.PacktPub.com
Preface
Index

Building a simple program with OpenCV


There are many program samples that show how to use OpenCV using Python. In our case, we build a simple program to detect a circle in a still image.

Consider we have the following image, which is used for testing. You can find the image file in the source code files, called circle.png.

To find a circle in a still image, we use circle Hough Transform (CHT). A circle can be defined as follows:

(a,b) is the center of a circle with radius r. These parameters will be computed using the CHT method.

Let's build a demo!

We will build a program to read an image file. Then, we will detect a circle form in an image using the cv2.HoughCircles() function.

Let's start to write these scripts:

import cv2
import numpy as np


print('load image')
orig = cv2.imread('circle.png')
processed = cv2.imread('circle.png', 0)
processed = cv2.medianBlur(processed, 19)

print('processing...')
circles = cv2.HoughCircles(processed, cv2.HOUGH_GRADIENT, 1, 70,
              param1=30,
  ...