在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. 采用CreateThread()创建多线程程序
  2. java存储三元组_在4store中添加三元组
  3. [Android]关于IntentService
  4. JDK源码(20)-Thread
  5. 本地mysql数据库初始密码_忘记本地MySQL数据库密码的解决方法
  6. 数据分析之Pandas VS SQL!
  7. ocp认证考试指南第一章
  8. ROS-cmakelists的解释
  9. gitlab 删除分支_idea gitlab 分支 pull、push 实践笔记
  10. 【干货】--手把手教你完成文本情感分类
  11. web 前端小记_1 :hasLayout
  12. haproxy利用ACL规则封禁自定义IP地址拒绝访问
  13. CUDA版本与显卡驱动匹配
  14. jsonp跨域原理(简单粗暴)
  15. ESD 静电保护原理和设计
  16. 怎么在计算机上面掉出CMD,电脑没有cmd怎么办
  17. c语言文件大小限制,文件超过某个大小就删除(C语言)
  18. 【数据库取证篇】阿里云RDS数据库简介
  19. 企业发布重要通知短信收不到该怎么办
  20. nvme固态必须uefi启动吗_戴尔Inspiron 灵越笔记本装win10系统及bios设置教程(uefi+gpt)...

热门文章

  1. 使用OpenMP reduction子句求解二维数组的最小值和输出所在下标
  2. 一百年沧桑巨变,数学大树依然长青
  3. 微信小程序连接蓝牙ble教程(目录)
  4. Lichee_RV学习系列--stream移植
  5. chapter10 十大算法
  6. 网络摄像机中的IR-CUT详解
  7. (No operations allowed after connection closed.).Possibly consider using a shorter maxLifetime value
  8. mysql的sqlyog学习笔记(高级查询部分)(代码用命令行显示 )
  9. 完全k叉树(CCPC-Wannafly Comet OJ 夏季欢乐赛(2019) A)
  10. ssm毕设项目学生宿舍管理系统15pjb(java+VUE+Mybatis+Maven+Mysql+sprnig)