在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实现相关推荐

  1. python opencv二值化图像_python opencv,读取彩色图像,提取三通道,图像二值化,提取图像的边缘...

    python opencv,读取彩色图像,提取三通道,图像二值化,提取图像的边缘 python opencv 1,读取图像 2,图像变矩阵 3,图像转灰度图像 4,彩色图像是3D数组 5,灰度图像是2 ...

  2. 图像轮廓生成Freeman码

    ##图像轮廓生成Freeman码## 摘要 Freeman码是描述轮廓的另外一种形式,这篇博客我将会用matlab和OpenCV两个版本生成Freeman码.纵观网上很多介绍边缘轮廓的,都提到过Fre ...

  3. open cv提取图片特征值_基于VGG16网络提取Flicker8K数据集图像特征

    # !/usr/bin/env python3 # -*- coding: utf-8 -*- # @Time : ${20200326} ${18:00} # @Author : ZicoZhou ...

  4. python提取列表中文本_python提取图像的名字*.jpg到txt文本的方法

    如下所示: # -*- coding:utf-8 -*- import sys sys.path.append('E:\\Anaconda\\libs') import os #os:操作系统相关的信 ...

  5. python图像纹理提取_提取图像的颜色、纹理特征(传统算法)

    Python-Image-feature-extraction Python实现提取图像的纹理.颜色特征,包含快速灰度共现矩阵(GLCM).LBP特征.颜色矩.颜色直方图.1044197988/Pyt ...

  6. python获取图片名称_python提取图像的名字*.jpg到txt文本的方法

    如下所示: # -*- coding:utf-8 -*- import sys sys.path.append('E:\\Anaconda\\libs') import os #os:操作系统相关的信 ...

  7. python图片截取特定部分_如何在Python中使用OpenCV提取图像的特定部分?

    我正在尝试通过执行精明的边缘检测来提取图像的一部分.我已经成功地创建了该对象的掩码.但是,当我对原始图像执行bitwise_and操作以提取前景部分时,会出现以下错误.OpenCV Error: As ...

  8. OpenCV python 提取图像内的三色

    OpenCV python 提取图像内的三色 原图 [opencv.jpg] import cv2 import numpy as npdef main():# 1.导入图片img_src = cv2 ...

  9. python 图像卷积_[卷积神经网络(CNN)中的卷积核到底是如何提取图像特征的(python实现图像卷积运算)]...

    1.前言 我们知道,卷积核(也叫滤波器矩阵)在卷积神经网络中具有非常重要的作用.说白了,CNN主要作用在于提取图像的各种特征图(feature maps). CNN主要是通过卷积运算来完成特征提取的. ...

最新文章

  1. Modular_exponentiation模幂运算
  2. 一些java基本程序图解1
  3. 数据结构-树和二叉树01(定义、度、深度、有序树、森林)
  4. 非常好用的卸载软件——Geek Uninstaller【官网、介绍、使用演示(卸载“格式工厂”)、软件包下载地址(百度网盘)】
  5. 三维CNN:收集一些最近的3d卷积网络PointNet++
  6. leetcode83 删除排序链表中的重复元素
  7. 小米宣布新一轮组织架构调整,崔宝秋挂帅技术委员会
  8. 新手指南:X5Cloud云端应用安装步骤(有图有说明)
  9. 快速从小白到大牛的Python学习路线
  10. fireworks切图
  11. Unity3D 去色Shader实现
  12. 【C++】C++继承和派生类、虚基类
  13. android 优秀框架整理
  14. 新手小白适合学习什么编程语言
  15. 瑞萨e2studio(6)----编译调试
  16. PyTorch中FLOPs计算问题
  17. centos主机测磁盘读写速度极限
  18. [ACL2017]Going out on a limb:Joint Extraction of Entity Mentions and Relations without Depende...
  19. 从0开始学习卷积神经网络与Yolo系列目标检测算法
  20. homeassistant搭建_梅林搭建home-assistant

热门文章

  1. 为tableview添加带控件的单元格如复选框checkbox与combbox单元格
  2. 显色指数(CRI)计算软件分享(升级版本:增加同步计算R15,CCT,CIE色坐标,三刺激值等)
  3. 形式逻辑(02)逻辑概述 负判断
  4. 萧伯纳学演讲不怕出丑
  5. lower_bound和upper_bound的区别
  6. c语言大小箱子,基于C语言箱子游戏.doc
  7. 三相桥式全控整流电路matlab仿真实验,三相全控桥式整流电路仿真实验
  8. 数据分析京东笔记本电脑
  9. 微信实名认证在哪里?分享详细认证步骤
  10. SQL语法之分组函数,分组查询(进阶5)and连接查询(sql92语法进阶6)