CV-提取图像Freeman码python实现
在anaconda和python下提取图像的freeman码
先利用opencv中的cv2.findContours 函数描述图片的轮廓,然后再返回值中得到一个有关于图像轮廓的数组,因为我们要的是freeman码,根据网上对于freeman.码 的定义,对于得到的数组进行相对于的操作即可得到对应的Freeman
以下是在anaconda下的python的代码
'''
提取一个图像的Freeman码
导入opencv中的cv2.findContours函数提取图像的轮http://blog.csdn.net/dcrmg/article/details/51987348
在该函数返回之中的 contours 包含了轮廓的属性,保存在一个数组中
通过对数组的计算,及可得到Freeman码
'''
import cv2
import numpy as np
import pandas as pd
img = cv2.imread('4.jpg')
gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
ret, binary =cv2.threshold(gray,127,255,cv2.THRESH_BINARY)
binary,contours, hierarchy =cv2.findContours(binary,cv2.RETR_TREE, cv2.CHAIN_APPROX_NONE)
#cv2.drawContours(img,contours,-1,(0,0,255),3)
#cv2.imshow("img", img)
#cv2.waitKey(0)
#cv2.RETR_TREE
#print (type(contours))
#print (type(contours[0]))
#print (len(contours[0]))
#print (contours[0]-contours[0])
columns = []
for i in range(81):
columns.append(contours[0][i]-contours[0][i - 1])
#print (len(columns))
#print (columns[1][0][0])
a = []
for i in range(81):
if columns[i][0][0] == 0 and columns[i][0][1] == -1:
a.append(6)
elif columns[i][0][0] == 0 and columns[i][0][1] == 1:
a.append(2)
elif columns[i][0][0] == 1 and columns[i][0][1] == 1:
a.append(1)
elif columns[i][0][0] == 1 and columns[i][0][1] == 0:
a.append(0)
elif columns[i][0][0] == 1 and columns[i][0][1] == -1:
a.append(7)
elif columns[i][0][0] == -1 and columns[i][0][1] == 1:
a.append(3)
elif columns[i][0][0] == -1 and columns[i][0][1] == 0:
a.append(4)
elif columns[i][0][0] == -1 and columns[i][0][1] == -1:
a.append(5)
print(a)
CV-提取图像Freeman码python实现相关推荐
- python opencv二值化图像_python opencv,读取彩色图像,提取三通道,图像二值化,提取图像的边缘...
python opencv,读取彩色图像,提取三通道,图像二值化,提取图像的边缘 python opencv 1,读取图像 2,图像变矩阵 3,图像转灰度图像 4,彩色图像是3D数组 5,灰度图像是2 ...
- 图像轮廓生成Freeman码
##图像轮廓生成Freeman码## 摘要 Freeman码是描述轮廓的另外一种形式,这篇博客我将会用matlab和OpenCV两个版本生成Freeman码.纵观网上很多介绍边缘轮廓的,都提到过Fre ...
- open cv提取图片特征值_基于VGG16网络提取Flicker8K数据集图像特征
# !/usr/bin/env python3 # -*- coding: utf-8 -*- # @Time : ${20200326} ${18:00} # @Author : ZicoZhou ...
- python提取列表中文本_python提取图像的名字*.jpg到txt文本的方法
如下所示: # -*- coding:utf-8 -*- import sys sys.path.append('E:\\Anaconda\\libs') import os #os:操作系统相关的信 ...
- python图像纹理提取_提取图像的颜色、纹理特征(传统算法)
Python-Image-feature-extraction Python实现提取图像的纹理.颜色特征,包含快速灰度共现矩阵(GLCM).LBP特征.颜色矩.颜色直方图.1044197988/Pyt ...
- python获取图片名称_python提取图像的名字*.jpg到txt文本的方法
如下所示: # -*- coding:utf-8 -*- import sys sys.path.append('E:\\Anaconda\\libs') import os #os:操作系统相关的信 ...
- python图片截取特定部分_如何在Python中使用OpenCV提取图像的特定部分?
我正在尝试通过执行精明的边缘检测来提取图像的一部分.我已经成功地创建了该对象的掩码.但是,当我对原始图像执行bitwise_and操作以提取前景部分时,会出现以下错误.OpenCV Error: As ...
- OpenCV python 提取图像内的三色
OpenCV python 提取图像内的三色 原图 [opencv.jpg] import cv2 import numpy as npdef main():# 1.导入图片img_src = cv2 ...
- python 图像卷积_[卷积神经网络(CNN)中的卷积核到底是如何提取图像特征的(python实现图像卷积运算)]...
1.前言 我们知道,卷积核(也叫滤波器矩阵)在卷积神经网络中具有非常重要的作用.说白了,CNN主要作用在于提取图像的各种特征图(feature maps). CNN主要是通过卷积运算来完成特征提取的. ...
最新文章
- Modular_exponentiation模幂运算
- 一些java基本程序图解1
- 数据结构-树和二叉树01(定义、度、深度、有序树、森林)
- 非常好用的卸载软件——Geek Uninstaller【官网、介绍、使用演示(卸载“格式工厂”)、软件包下载地址(百度网盘)】
- 三维CNN:收集一些最近的3d卷积网络PointNet++
- leetcode83 删除排序链表中的重复元素
- 小米宣布新一轮组织架构调整,崔宝秋挂帅技术委员会
- 新手指南:X5Cloud云端应用安装步骤(有图有说明)
- 快速从小白到大牛的Python学习路线
- fireworks切图
- Unity3D 去色Shader实现
- 【C++】C++继承和派生类、虚基类
- android 优秀框架整理
- 新手小白适合学习什么编程语言
- 瑞萨e2studio(6)----编译调试
- PyTorch中FLOPs计算问题
- centos主机测磁盘读写速度极限
- [ACL2017]Going out on a limb:Joint Extraction of Entity Mentions and Relations without Depende...
- 从0开始学习卷积神经网络与Yolo系列目标检测算法
- homeassistant搭建_梅林搭建home-assistant
热门文章
- 为tableview添加带控件的单元格如复选框checkbox与combbox单元格
- 显色指数(CRI)计算软件分享(升级版本:增加同步计算R15,CCT,CIE色坐标,三刺激值等)
- 形式逻辑(02)逻辑概述 负判断
- 萧伯纳学演讲不怕出丑
- lower_bound和upper_bound的区别
- c语言大小箱子,基于C语言箱子游戏.doc
- 三相桥式全控整流电路matlab仿真实验,三相全控桥式整流电路仿真实验
- 数据分析京东笔记本电脑
- 微信实名认证在哪里?分享详细认证步骤
- SQL语法之分组函数,分组查询(进阶5)and连接查询(sql92语法进阶6)