OpenCV中遍历图像与邻域操作

实验环境:

Windows10 x64
OpenCV2.4.11 + vs2013

实验目的:

练习使用图像遍历的方法;学习使用ptr,staturate_cast,Scalar, setTo,row,col 等函数;学习使用滤波函数cv::filter2D进行滤波操作;

代码示例:

#include<opencv2/opencv.hpp>
#include<iostream>

using namespace cv;
using namespace std;

void Sharpen(const Mat& image, Mat& ret);
void sharpenByFilter2D(const Mat& image, Mat& ret);

int main()
{
    Mat image;
    image = imread("E:\\dataset\\images\\6.png");
    if (!image.data)
    {
        return -1;
    }
    Mat copy;
    image.copyTo(copy);

    //filter2D()
    namedWindow("before");
    imshow("before", image);

    namedWindow("Sharpen&#
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是使用OpenCV的区生长算法进行图像分割的示例代码: ```python import cv2 # 定义区生长函数 def region_growing(img, seed): # 获取图像的高度和宽度 height, width = img.shape # 定义8 neighborhood = [(i, j) for i in range(-1, 2) for j in range(-1, 2) if not i == j == 0] # 创建一个mask,初始化为0 mask = np.zeros((height, width), np.uint8) # 将种子点设为白色 mask[seed] = 255 # 遍图像,将与种子点相的像素点加入mask while True: prev_mask = np.copy(mask) for i in range(height): for j in range(width): if mask[i, j] == 255: for x, y in neighborhood: xi, yj = i + x, j + y if 0 <= xi < height and 0 <= yj < width: if img[xi, yj] != 0 and mask[xi, yj] == 0: mask[xi, yj] = 255 # 如果mask没有变化,说明已经找到了所有相的像素点,退出循环 if np.all(prev_mask == mask): break # 返回mask return mask # 读入图像 img = cv2.imread('image.jpg', 0) # 选择种子点 seed = (100, 100) # 进行区生长 mask = region_growing(img, seed) # 显示原图和分割结果 cv2.imshow("Original Image", img) cv2.imshow("Segmented Image", mask) cv2.waitKey(0) cv2.destroyAllWindows() ``` 在上面的示例代码,我们定义了一个 `region_growing` 函数,该函数使用区生长算法进行图像分割。该函数接受两个参数:一个是输入图像,另一个是种子点。函数通过遍图像,将与种子点相的像素点加入mask,直到找到所有相的像素点为止。最后,函数返回mask,即分割结果。 在主程序,我们读入一张图像,选择一个种子点,并将图像和分割结果显示出来。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值